<!doctype html><html lang="en">
 <head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
  <meta content="#3c790a" name="theme-color">
  <title>XMLHttpRequest Standard</title>
  <link crossorigin href="https://resources.whatwg.org/spec.css" rel="stylesheet">
  <link crossorigin href="https://resources.whatwg.org/standard.css" rel="stylesheet">
  <link crossorigin href="https://resources.whatwg.org/standard-shared-with-dev.css" rel="stylesheet">
  <link crossorigin href="https://resources.whatwg.org/logo-xhr.svg" rel="icon">
<script async crossorigin src="https://resources.whatwg.org/file-issue.js"></script>
<script async crossorigin src="https://resources.whatwg.org/commit-snapshot-shortcut-key.js"></script>
<style>/* style-dfn-panel */

.dfn-panel {
    position: absolute;
    z-index: 35;
    height: auto;
    width: -webkit-fit-content;
    width: fit-content;
    max-width: 300px;
    max-height: 500px;
    overflow: auto;
    padding: 0.5em 0.75em;
    font: small Helvetica Neue, sans-serif, Droid Sans Fallback;
    background: #DDDDDD;
    color: black;
    border: outset 0.2em;
}
.dfn-panel:not(.on) { display: none; }
.dfn-panel * { margin: 0; padding: 0; text-indent: 0; }
.dfn-panel > b { display: block; }
.dfn-panel a { color: black; }
.dfn-panel a:not(:hover) { text-decoration: none !important; border-bottom: none !important; }
.dfn-panel > b + b { margin-top: 0.25em; }
.dfn-panel ul { padding: 0; }
.dfn-panel li { list-style: inside; }
.dfn-panel.activated {
    display: inline-block;
    position: fixed;
    left: .5em;
    bottom: 2em;
    margin: 0 auto;
    max-width: calc(100vw - 1.5em - .4em - .5em);
    max-height: 30vh;
}

.dfn-paneled { cursor: pointer; }
</style>
 <body class="h-entry status-LS">
  <div class="head">
   <p data-fill-with="logo"><a class="logo" href="https://whatwg.org/"> <img alt="WHATWG" crossorigin height="100" src="https://resources.whatwg.org/logo-xhr.svg"> </a> </p>
   <hgroup>
    <h1 class="p-name no-ref" id="title">XMLHttpRequest</h1>
    <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Living Standard — Last Updated <time class="dt-updated" datetime="1970-01-01">1 January 1970</time></span></h2>
   </hgroup>
   <div data-fill-with="spec-metadata">
    <dl>
     <dt>Participate:
     <dd><a href="https://github.com/whatwg/xhr">GitHub whatwg/xhr</a> (<a href="https://github.com/whatwg/xhr/issues/new">new issue</a>, <a href="https://github.com/whatwg/xhr/issues">open issues</a>)
     <dd><a href="https://wiki.whatwg.org/wiki/IRC">IRC: #whatwg on Freenode</a>
     <dt>Commits:
     <dd><a href="https://github.com/whatwg/xhr/commits">GitHub whatwg/xhr/commits</a>
     <dd>[SNAPSHOT-LINK]
     <dd><a href="https://twitter.com/xhrstandard">@xhrstandard</a>
     <dt>Tests:
     <dd><a href="https://github.com/web-platform-tests/wpt/tree/master/xhr">web-platform-tests xhr/</a> (<a href="https://github.com/web-platform-tests/wpt/labels/xhr">ongoing work</a>)
     <dt>Translations <small>(non-normative)</small>:
     <dd><span title="Japanese"><a href="https://triple-underscore.github.io/XHR-ja.html" hreflang="ja" lang="ja" rel="alternate">日本語</a></span>
    </dl>
   </div>
   <div data-fill-with="warning"></div>
  </div>
  <div class="p-summary" data-fill-with="abstract">
   <h2 class="no-num no-toc no-ref heading settled" id="abstract"><span class="content">Abstract</span></h2>
   <p>The XMLHttpRequest Standard defines an API that provides scripted client functionality for transferring data between a client and a server.</p>
  </div>
  <nav data-fill-with="table-of-contents" id="toc">
   <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
   <ol class="toc" role="directory">
    <li>
     <a href="#introduction"><span class="secno">1</span> <span class="content">Introduction</span></a>
     <ol class="toc">
      <li><a href="#specification-history"><span class="secno">1.1</span> <span class="content">Specification history</span></a>
     </ol>
    <li>
     <a href="#conformance"><span class="secno">2</span> <span class="content">Conformance</span></a>
     <ol class="toc">
      <li><a href="#extensibility"><span class="secno">2.1</span> <span class="content">Extensibility</span></a>
     </ol>
    <li><a href="#terminology"><span class="secno">3</span> <span class="content">Terminology</span></a>
    <li>
     <a href="#interface-xmlhttprequest"><span class="secno">4</span> <span class="content">Interface <code class="idl"><span>XMLHttpRequest</span></code></span></a>
     <ol class="toc">
      <li><a href="#constructors"><span class="secno">4.1</span> <span class="content">Constructors</span></a>
      <li><a href="#garbage-collection"><span class="secno">4.2</span> <span class="content">Garbage collection</span></a>
      <li><a href="#event-handlers"><span class="secno">4.3</span> <span class="content">Event handlers</span></a>
      <li><a href="#states"><span class="secno">4.4</span> <span class="content">States</span></a>
      <li>
       <a href="#request"><span class="secno">4.5</span> <span class="content">Request</span></a>
       <ol class="toc">
        <li><a href="#the-open()-method"><span class="secno">4.5.1</span> <span class="content">The <code>open()</code> method</span></a>
        <li><a href="#the-setrequestheader()-method"><span class="secno">4.5.2</span> <span class="content">The <code>setRequestHeader()</code> method</span></a>
        <li><a href="#the-timeout-attribute"><span class="secno">4.5.3</span> <span class="content">The <code>timeout</code> attribute</span></a>
        <li><a href="#the-withcredentials-attribute"><span class="secno">4.5.4</span> <span class="content">The <code>withCredentials</code> attribute</span></a>
        <li><a href="#the-upload-attribute"><span class="secno">4.5.5</span> <span class="content">The <code>upload</code> attribute</span></a>
        <li><a href="#the-send()-method"><span class="secno">4.5.6</span> <span class="content">The <code>send()</code> method</span></a>
        <li><a href="#the-abort()-method"><span class="secno">4.5.7</span> <span class="content">The <code>abort()</code> method</span></a>
       </ol>
      <li>
       <a href="#xmlhttprequest-response"><span class="secno">4.6</span> <span class="content">Response</span></a>
       <ol class="toc">
        <li><a href="#the-responseurl-attribute"><span class="secno">4.6.1</span> <span class="content">The <code>responseURL</code> attribute</span></a>
        <li><a href="#the-status-attribute"><span class="secno">4.6.2</span> <span class="content">The <code>status</code> attribute</span></a>
        <li><a href="#the-statustext-attribute"><span class="secno">4.6.3</span> <span class="content">The <code>statusText</code> attribute</span></a>
        <li><a href="#the-getresponseheader()-method"><span class="secno">4.6.4</span> <span class="content">The <code>getResponseHeader()</code> method</span></a>
        <li><a href="#the-getallresponseheaders()-method"><span class="secno">4.6.5</span> <span class="content">The <code>getAllResponseHeaders()</code> method</span></a>
        <li><a href="#response-body"><span class="secno">4.6.6</span> <span class="content">Response body</span></a>
        <li><a href="#the-overridemimetype()-method"><span class="secno">4.6.7</span> <span class="content">The <code>overrideMimeType()</code> method</span></a>
        <li><a href="#the-responsetype-attribute"><span class="secno">4.6.8</span> <span class="content">The <code>responseType</code> attribute</span></a>
        <li><a href="#the-response-attribute"><span class="secno">4.6.9</span> <span class="content">The <code>response</code> attribute</span></a>
        <li><a href="#the-responsetext-attribute"><span class="secno">4.6.10</span> <span class="content">The <code>responseText</code> attribute</span></a>
        <li><a href="#the-responsexml-attribute"><span class="secno">4.6.11</span> <span class="content">The <code>responseXML</code> attribute</span></a>
       </ol>
      <li><a href="#events"><span class="secno">4.7</span> <span class="content">Events summary</span></a>
      <li><a href="#feature-policy-integration"><span class="secno">4.8</span> <span class="content">Feature Policy integration</span></a>
     </ol>
    <li><a href="#interface-formdata"><span class="secno">5</span> <span class="content">Interface <code class="idl"><span>FormData</span></code></span></a>
    <li>
     <a href="#interface-progressevent"><span class="secno">6</span> <span class="content">Interface <code class="idl"><span>ProgressEvent</span></code></span></a>
     <ol class="toc">
      <li><a href="#firing-events-using-the-progressevent-interface"><span class="secno">6.1</span> <span class="content">Firing events using the <code class="idl"><span>ProgressEvent</span></code> interface</span></a>
      <li><a href="#suggested-names-for-events-using-the-progressevent-interface"><span class="secno">6.2</span> <span class="content">Suggested names for events using the <code class="idl"><span>ProgressEvent</span></code> interface</span></a>
      <li><a href="#security-considerations"><span class="secno">6.3</span> <span class="content">Security considerations</span></a>
      <li><a href="#example"><span class="secno">6.4</span> <span class="content">Example</span></a>
     </ol>
    <li><a href="#acknowledgments"><span class="secno"></span> <span class="content">Acknowledgments</span></a>
    <li>
     <a href="#index"><span class="secno"></span> <span class="content">Index</span></a>
     <ol class="toc">
      <li><a href="#index-defined-here"><span class="secno"></span> <span class="content">Terms defined by this specification</span></a>
      <li><a href="#index-defined-elsewhere"><span class="secno"></span> <span class="content">Terms defined by reference</span></a>
     </ol>
    <li>
     <a href="#references"><span class="secno"></span> <span class="content">References</span></a>
     <ol class="toc">
      <li><a href="#normative"><span class="secno"></span> <span class="content">Normative References</span></a>
     </ol>
    <li><a href="#idl-index"><span class="secno"></span> <span class="content">IDL Index</span></a>
   </ol>
  </nav>
  <main>
   <h2 class="heading settled" data-level="1" id="introduction"><span class="secno">1. </span><span class="content">Introduction</span><a class="self-link" href="#introduction"></a></h2>
   <p><em>This section is non-normative.</em> </p>
   <p>The <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest">XMLHttpRequest</a></code> object is an API for <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch">fetching</a> resources. </p>
   <p>The name <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①">XMLHttpRequest</a></code> is historical and has no bearing on its functionality. </p>
   <div class="example" id="example-xhr">
    <a class="self-link" href="#example-xhr"></a> 
    <p>Some simple code to do something with data from an XML document
 fetched over the network: </p>
<pre><code class="lang-javascript highlight"><c- a>function</c-> processData<c- p>(</c->data<c- p>)</c-> <c- p>{</c->
  <c- c1>// taking care of data</c->
<c- p>}</c->

<c- a>function</c-> handler<c- p>()</c-> <c- p>{</c->
  <c- k>if</c-><c- p>(</c-><c- k>this</c-><c- p>.</c->status <c- o>==</c-> <c- mi>200</c-> <c- o>&amp;&amp;</c->
    <c- k>this</c-><c- p>.</c->responseXML <c- o>!=</c-> <c- kc>null</c-> <c- o>&amp;&amp;</c->
    <c- k>this</c-><c- p>.</c->responseXML<c- p>.</c->getElementById<c- p>(</c-><c- t>'test'</c-><c- p>).</c->textContent<c- p>)</c-> <c- p>{</c->
    <c- c1>// success!</c->
    processData<c- p>(</c-><c- k>this</c-><c- p>.</c->responseXML<c- p>.</c->getElementById<c- p>(</c-><c- t>'test'</c-><c- p>).</c->textContent<c- p>);</c->
  <c- p>}</c-> <c- k>else</c-> <c- p>{</c->
    <c- c1>// something went wrong</c->
    …
  <c- p>}</c->
<c- p>}</c->

<c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
client<c- p>.</c->onload <c- o>=</c-> handler<c- p>;</c->
client<c- p>.</c->open<c- p>(</c-><c- u>"GET"</c-><c- p>,</c-> <c- u>"unicorn.xml"</c-><c- p>);</c->
client<c- p>.</c->send<c- p>();</c-></code></pre>
    <p>If you just want to log a message to the server: </p>
<pre><code class="lang-javascript highlight"><c- a>function</c-> log<c- p>(</c->message<c- p>)</c-> <c- p>{</c->
  <c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
  client<c- p>.</c->open<c- p>(</c-><c- u>"POST"</c-><c- p>,</c-> <c- u>"/log"</c-><c- p>);</c->
  client<c- p>.</c->setRequestHeader<c- p>(</c-><c- u>"Content-Type"</c-><c- p>,</c-> <c- u>"text/plain;charset=UTF-8"</c-><c- p>);</c->
  client<c- p>.</c->send<c- p>(</c->message<c- p>);</c->
<c- p>}</c-></code></pre>
    <p>Or if you want to check the status of a document on the server: </p>
<pre><code class="lang-javascript highlight"><c- a>function</c-> fetchStatus<c- p>(</c->address<c- p>)</c-> <c- p>{</c->
  <c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
  client<c- p>.</c->onload <c- o>=</c-> <c- a>function</c-><c- p>()</c-> <c- p>{</c->
    <c- c1>// in case of network errors this might not give reliable results</c->
    returnStatus<c- p>(</c-><c- k>this</c-><c- p>.</c->status<c- p>);</c->
  <c- p>}</c->
  client<c- p>.</c->open<c- p>(</c-><c- u>"HEAD"</c-><c- p>,</c-> address<c- p>);</c->
  client<c- p>.</c->send<c- p>();</c->
<c- p>}</c-></code></pre>
   </div>
   <h3 class="heading settled" data-level="1.1" id="specification-history"><span class="secno">1.1. </span><span class="content">Specification history</span><a class="self-link" href="#specification-history"></a></h3>
   <p>The <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest②">XMLHttpRequest</a></code> object was initially defined as part of
the WHATWG’s HTML effort. (Based on Microsoft’s implementation many years prior.)
It moved to the W3C in 2006. Extensions (e.g. progress events and
cross-origin requests) to <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest③">XMLHttpRequest</a></code> were developed in a
separate draft (XMLHttpRequest Level 2) until end of 2011, at which point
the two drafts were merged and <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest④">XMLHttpRequest</a></code> became a single
entity again from a standards perspective. End of 2012 it moved back to the
WHATWG. </p>
   <p>Discussion that led to the current draft can be found in the following mailing list
archives: </p>
   <ul class="brief">
    <li><a href="https://lists.w3.org/Archives/Public/public-whatwg-archive/">whatwg@whatwg.org</a> 
    <li><a href="https://lists.w3.org/Archives/Public/public-webapps/">public-webapps@w3.org</a> 
    <li><a href="https://lists.w3.org/Archives/Public/public-webapi/">public-webapi@w3.org</a> 
    <li><a href="https://lists.w3.org/Archives/Public/public-appformats/">public-appformats@w3.org</a> 
   </ul>
   <h2 class="heading settled" data-level="2" id="conformance"><span class="secno">2. </span><span class="content">Conformance</span><a class="self-link" href="#conformance"></a></h2>
   <p>All diagrams, examples, and notes in this specification are
non-normative, as are all sections explicitly marked non-normative.
Everything else in this specification is normative. </p>
   <p>The key words "MUST", "MUST NOT", "REQUIRED", 
 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in the normative parts of this specification are to be
interpreted as described in RFC2119. For readability, these words do
not appear in all uppercase letters in this specification. <a data-link-type="biblio" href="#biblio-rfc2119">[RFC2119]</a> </p>
   <h3 class="heading settled" data-level="2.1" id="extensibility"><span class="secno">2.1. </span><span class="content">Extensibility</span><a class="self-link" href="#extensibility"></a></h3>
   <p>User agents, Working Groups, and other interested parties are <em>strongly encouraged</em> to discuss new features with the WHATWG
community. </p>
   <h2 class="heading settled" data-level="3" id="terminology"><span class="secno">3. </span><span class="content">Terminology</span><a class="self-link" href="#terminology"></a></h2>
   <p>This specification uses terminology, cross-linked throughout, from DOM,
DOM Parsing and Serialization, Encoding, Feature Policy, Fetch, File API, HTML,
HTTP, URL, Web IDL, and XML. </p>
   <p><a data-link-type="biblio" href="#biblio-dom">[DOM]</a> <a data-link-type="biblio" href="#biblio-domps">[DOMPS]</a> <a data-link-type="biblio" href="#biblio-encoding">[ENCODING]</a> <a data-link-type="biblio" href="#biblio-feature-policy">[FEATURE-POLICY]</a> <a data-link-type="biblio" href="#biblio-fetch">[FETCH]</a> <a data-link-type="biblio" href="#biblio-fileapi">[FILEAPI]</a> <a data-link-type="biblio" href="#biblio-html">[HTML]</a> <a data-link-type="biblio" href="#biblio-http">[HTTP]</a> <a data-link-type="biblio" href="#biblio-url">[URL]</a> <a data-link-type="biblio" href="#biblio-webidl">[WEBIDL]</a> <a data-link-type="biblio" href="#biblio-xml">[XML]</a> <a data-link-type="biblio" href="#biblio-xmlns">[XMLNS]</a></p>
   <p>It uses the typographic conventions from HTML. <a data-link-type="biblio" href="#biblio-html">[HTML]</a> </p>
   <h2 class="heading settled" data-level="4" id="interface-xmlhttprequest"><span class="secno">4. </span><span class="content">Interface <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest⑤">XMLHttpRequest</a></code></span><a class="self-link" href="#interface-xmlhttprequest"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="xmlhttprequesteventtarget"><code><c- g>XMLHttpRequestEventTarget</c-></code></dfn> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#eventtarget" id="ref-for-eventtarget"><c- n>EventTarget</c-></a> {
  // event handlers
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onloadstart" id="ref-for-handler-xhr-onloadstart"><c- g>onloadstart</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onprogress" id="ref-for-handler-xhr-onprogress"><c- g>onprogress</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler②"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onabort" id="ref-for-handler-xhr-onabort"><c- g>onabort</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler③"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onerror" id="ref-for-handler-xhr-onerror"><c- g>onerror</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler④"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onload" id="ref-for-handler-xhr-onload"><c- g>onload</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑤"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-ontimeout" id="ref-for-handler-xhr-ontimeout"><c- g>ontimeout</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑥"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onloadend" id="ref-for-handler-xhr-onloadend"><c- g>onloadend</c-></a>;
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="xmlhttprequestupload"><code><c- g>XMLHttpRequestUpload</c-></code></dfn> : <a class="n" data-link-type="idl-name" href="#xmlhttprequesteventtarget" id="ref-for-xmlhttprequesteventtarget"><c- n>XMLHttpRequestEventTarget</c-></a> {
};

<c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="xmlhttprequestresponsetype"><code><c- g>XMLHttpRequestResponseType</c-></code></dfn> {
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype"><code><c- s>""</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype"></a></dfn>,
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype-arraybuffer"><code><c- s>"arraybuffer"</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype-arraybuffer"></a></dfn>,
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype-blob"><code><c- s>"blob"</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype-blob"></a></dfn>,
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype-document"><code><c- s>"document"</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype-document"></a></dfn>,
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype-json"><code><c- s>"json"</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype-json"></a></dfn>,
  <dfn class="idl-code" data-dfn-for="XMLHttpRequestResponseType" data-dfn-type="enum-value" data-export id="dom-xmlhttprequestresponsetype-text"><code><c- s>"text"</c-></code><a class="self-link" href="#dom-xmlhttprequestresponsetype-text"></a></dfn>
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed②"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="xmlhttprequest"><code><c- g>XMLHttpRequest</c-></code></dfn> : <a class="n" data-link-type="idl-name" href="#xmlhttprequesteventtarget" id="ref-for-xmlhttprequesteventtarget①"><c- n>XMLHttpRequestEventTarget</c-></a> {
  <a class="idl-code" data-link-type="constructor" href="#dom-xmlhttprequest" id="ref-for-dom-xmlhttprequest"><c- g>constructor</c-></a>();

  // event handler
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑦"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onreadystatechange" id="ref-for-handler-xhr-onreadystatechange"><c- g>onreadystatechange</c-></a>;

  // states
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-unsent" id="ref-for-dom-xmlhttprequest-unsent"><c- g>UNSENT</c-></a> = 0;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-opened" id="ref-for-dom-xmlhttprequest-opened"><c- g>OPENED</c-></a> = 1;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short②"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-headers_received" id="ref-for-dom-xmlhttprequest-headers_received"><c- g>HEADERS_RECEIVED</c-></a> = 2;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short③"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-loading" id="ref-for-dom-xmlhttprequest-loading"><c- g>LOADING</c-></a> = 3;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short④"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-done" id="ref-for-dom-xmlhttprequest-done"><c- g>DONE</c-></a> = 4;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short⑤"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned short" href="#dom-xmlhttprequest-readystate" id="ref-for-dom-xmlhttprequest-readystate"><c- g>readyState</c-></a>;

  // request
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open" id="ref-for-dom-xmlhttprequest-open"><c- g>open</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString"><c- b>ByteString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-method"><code><c- g>method</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-method"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-url"><code><c- g>url</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-url"></a></dfn>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open-method-url-async-username-password" id="ref-for-dom-xmlhttprequest-open-method-url-async-username-password"><c- g>open</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString①"><c- b>ByteString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url, async, username, password), XMLHttpRequest/open(method, url, async, username), XMLHttpRequest/open(method, url, async)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-async-username-password-method"><code><c- g>method</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-async-username-password-method"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url, async, username, password), XMLHttpRequest/open(method, url, async, username), XMLHttpRequest/open(method, url, async)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-async-username-password-url"><code><c- g>url</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-async-username-password-url"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean"><c- b>boolean</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url, async, username, password), XMLHttpRequest/open(method, url, async, username), XMLHttpRequest/open(method, url, async)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-async-username-password-async"><code><c- g>async</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-async-username-password-async"></a></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString②"><c- b>USVString</c-></a>? <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url, async, username, password), XMLHttpRequest/open(method, url, async, username), XMLHttpRequest/open(method, url, async)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-async-username-password-username"><code><c- g>username</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-async-username-password-username"></a></dfn> = <c- b>null</c->, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString③"><c- b>USVString</c-></a>? <dfn class="idl-code" data-dfn-for="XMLHttpRequest/open(method, url, async, username, password), XMLHttpRequest/open(method, url, async, username), XMLHttpRequest/open(method, url, async)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-open-method-url-async-username-password-password"><code><c- g>password</c-></code><a class="self-link" href="#dom-xmlhttprequest-open-method-url-async-username-password-password"></a></dfn> = <c- b>null</c->);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-setrequestheader" id="ref-for-dom-xmlhttprequest-setrequestheader"><c- g>setRequestHeader</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString②"><c- b>ByteString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/setRequestHeader(name, value)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-setrequestheader-name-value-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-xmlhttprequest-setrequestheader-name-value-name"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString③"><c- b>ByteString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/setRequestHeader(name, value)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-setrequestheader-name-value-value"><code><c- g>value</c-></code><a class="self-link" href="#dom-xmlhttprequest-setrequestheader-name-value-value"></a></dfn>);
           <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long" id="ref-for-idl-unsigned-long"><c- b>unsigned</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-type="unsigned long" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout"><c- g>timeout</c-></a>;
           <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="attribute" data-type="boolean" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials"><c- g>withCredentials</c-></a>;
  [<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#SameObject" id="ref-for-SameObject"><c- g>SameObject</c-></a>] <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload"><c- n>XMLHttpRequestUpload</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="XMLHttpRequestUpload" href="#dom-xmlhttprequest-upload" id="ref-for-dom-xmlhttprequest-upload"><c- g>upload</c-></a>;
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-send" id="ref-for-dom-xmlhttprequest-send"><c- g>send</c-></a>(<c- b>optional</c-> (<a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#document" id="ref-for-document"><c- n>Document</c-></a> <c- b>or</c-> <a class="n" data-link-type="idl-name" href="https://fetch.spec.whatwg.org/#bodyinit" id="ref-for-bodyinit"><c- n>BodyInit</c-></a>)? <dfn class="idl-code" data-dfn-for="XMLHttpRequest/send(body), XMLHttpRequest/send()" data-dfn-type="argument" data-export id="dom-xmlhttprequest-send-body-body"><code><c- g>body</c-></code><a class="self-link" href="#dom-xmlhttprequest-send-body-body"></a></dfn> = <c- b>null</c->);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-abort" id="ref-for-dom-xmlhttprequest-abort"><c- g>abort</c-></a>();

  // response
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString④"><c- b>USVString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="USVString" href="#dom-xmlhttprequest-responseurl" id="ref-for-dom-xmlhttprequest-responseurl"><c- g>responseURL</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short⑥"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned short" href="#dom-xmlhttprequest-status" id="ref-for-dom-xmlhttprequest-status"><c- g>status</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString④"><c- b>ByteString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ByteString" href="#dom-xmlhttprequest-statustext" id="ref-for-dom-xmlhttprequest-statustext"><c- g>statusText</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑤"><c- b>ByteString</c-></a>? <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-getresponseheader" id="ref-for-dom-xmlhttprequest-getresponseheader"><c- g>getResponseHeader</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑥"><c- b>ByteString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/getResponseHeader(name)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-getresponseheader-name-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-xmlhttprequest-getresponseheader-name-name"></a></dfn>);
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑦"><c- b>ByteString</c-></a> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-getallresponseheaders" id="ref-for-dom-xmlhttprequest-getallresponseheaders"><c- g>getAllResponseHeaders</c-></a>();
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-overridemimetype" id="ref-for-dom-xmlhttprequest-overridemimetype"><c- g>overrideMimeType</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString"><c- b>DOMString</c-></a> <dfn class="idl-code" data-dfn-for="XMLHttpRequest/overrideMimeType(mime)" data-dfn-type="argument" data-export id="dom-xmlhttprequest-overridemimetype-mime-mime"><code><c- g>mime</c-></code><a class="self-link" href="#dom-xmlhttprequest-overridemimetype-mime-mime"></a></dfn>);
           <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#xmlhttprequestresponsetype" id="ref-for-xmlhttprequestresponsetype"><c- n>XMLHttpRequestResponseType</c-></a> <a class="idl-code" data-link-type="attribute" data-type="XMLHttpRequestResponseType" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype"><c- g>responseType</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <c- b>any</c-> <a class="idl-code" data-link-type="attribute" data-readonly data-type="any" href="#dom-xmlhttprequest-response" id="ref-for-dom-xmlhttprequest-response"><c- g>response</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑤"><c- b>USVString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="USVString" href="#dom-xmlhttprequest-responsetext" id="ref-for-dom-xmlhttprequest-responsetext"><c- g>responseText</c-></a>;
  [<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed③"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#document" id="ref-for-document①"><c- n>Document</c-></a>? <a class="idl-code" data-link-type="attribute" data-readonly data-type="Document?" href="#dom-xmlhttprequest-responsexml" id="ref-for-dom-xmlhttprequest-responsexml"><c- g>responseXML</c-></a>;
};
</pre>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest⑥">XMLHttpRequest</a></code> object has an associated <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①">XMLHttpRequestUpload</a></code> object. </p>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest⑦">XMLHttpRequest</a></code> object has an associated <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="concept-xmlhttprequest-state">state</dfn>, which is one of <i>unsent</i>, <i>opened</i>, <i>headers received</i>, <i>loading</i>, and <i>done</i>. Unless stated otherwise it is <i>unsent</i>. </p>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest⑧">XMLHttpRequest</a></code> object has an associated <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="send-flag"><code>send()</code> flag</dfn>. Unless stated otherwise it is unset. </p>
   <h3 class="heading settled" data-level="4.1" id="constructors"><span class="secno">4.1. </span><span class="content">Constructors</span><a class="self-link" href="#constructors"></a></h3>
   <dl class="domintro">
    <dt><code><var>client</var> = new <a class="idl-code" data-link-type="constructor" href="#dom-xmlhttprequest" id="ref-for-dom-xmlhttprequest①">XMLHttpRequest()</a></code> 
    <dd>Returns a new <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest⑨">XMLHttpRequest</a></code> object. 
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="constructor" data-export data-lt="XMLHttpRequest()|constructor()" id="dom-xmlhttprequest"><code>XMLHttpRequest()</code></dfn> constructor, when invoked, must return a new <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⓪">XMLHttpRequest</a></code> object. </p>
   <h3 class="heading settled" data-level="4.2" id="garbage-collection"><span class="secno">4.2. </span><span class="content">Garbage collection</span><a class="self-link" href="#garbage-collection"></a></h3>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①①">XMLHttpRequest</a></code> object must not be garbage collected if its <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state">state</a> is either <i>opened</i> with the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag"><code>send()</code> flag</a> set, <i>headers received</i>, or <i>loading</i>, and it has one or more <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-listener" id="ref-for-concept-event-listener">event listeners</a> registered whose <b>type</b> is one of <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange"><code>readystatechange</code></a>, <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress"><code>progress</code></a>, <a class="idl-code" data-link-type="event" href="#event-xhr-abort" id="ref-for-event-xhr-abort"><code>abort</code></a>, <a class="idl-code" data-link-type="event" href="#event-xhr-error" id="ref-for-event-xhr-error"><code>error</code></a>, <a class="idl-code" data-link-type="event" href="#event-xhr-load" id="ref-for-event-xhr-load"><code>load</code></a>, <a class="idl-code" data-link-type="event" href="#event-xhr-timeout" id="ref-for-event-xhr-timeout"><code>timeout</code></a>, and <a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend"><code>loadend</code></a>. </p>
   <p>If an <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①②">XMLHttpRequest</a></code> object is garbage collected while its
connection is still open, the user agent must <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch-terminate" id="ref-for-concept-fetch-terminate">terminate</a> the ongoing
fetch operated by the <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①③">XMLHttpRequest</a></code> object. </p>
   <h3 class="heading settled" data-level="4.3" id="event-handlers"><span class="secno">4.3. </span><span class="content">Event handlers</span><a class="self-link" href="#event-handlers"></a></h3>
   <p>The following are the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers" id="ref-for-event-handlers">event handlers</a> (and their corresponding <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type">event handler event types</a>)
that must be supported on objects implementing an interface that inherits
from <code class="idl"><a data-link-type="idl" href="#xmlhttprequesteventtarget" id="ref-for-xmlhttprequesteventtarget②">XMLHttpRequestEventTarget</a></code> as attributes: </p>
   <table>
    <thead>
     <tr>
      <th><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers" id="ref-for-event-handlers①">event handler</a> 
      <th><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type①">event handler event type</a> 
    <tbody>
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onloadstart"><code>onloadstart</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-loadstart" id="ref-for-event-xhr-loadstart"><code>loadstart</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onprogress"><code>onprogress</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress①"><code>progress</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onabort"><code>onabort</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-abort" id="ref-for-event-xhr-abort①"><code>abort</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onerror"><code>onerror</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-error" id="ref-for-event-xhr-error①"><code>error</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onload"><code>onload</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-load" id="ref-for-event-xhr-load①"><code>load</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-ontimeout"><code>ontimeout</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-timeout" id="ref-for-event-xhr-timeout①"><code>timeout</code></a> 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequestEventTarget" data-dfn-type="attribute" data-export id="handler-xhr-onloadend"><code>onloadend</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend①"><code>loadend</code></a> 
   </table>
   <p>The following is the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers" id="ref-for-event-handlers②">event handler</a> (and its corresponding <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type②">event handler event type</a>) that must be
supported as attribute solely by the <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①④">XMLHttpRequest</a></code> object: </p>
   <table>
    <thead>
     <tr>
      <th><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers" id="ref-for-event-handlers③">event handler</a> 
      <th><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type③">event handler event type</a> 
    <tbody>
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="handler-xhr-onreadystatechange"><code>onreadystatechange</code></dfn> 
      <td><a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange①"><code>readystatechange</code></a> 
   </table>
   <h3 class="heading settled" data-level="4.4" id="states"><span class="secno">4.4. </span><span class="content">States</span><a class="self-link" href="#states"></a></h3>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-readystate" id="ref-for-dom-xmlhttprequest-readystate①">readyState</a></code> 
    <dd>
     <p>Returns <var>client</var>’s <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①">state</a>. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-readystate"><code>readyState</code></dfn> attribute’s getter must return the value from the table below in the cell of the second column, from
the row where the value in the cell in the first column is <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object">context object</a>’s <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②">state</a>: </p>
   <table>
    <tbody>
     <tr>
      <td><i>unsent</i> 
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="const" data-export id="dom-xmlhttprequest-unsent"><code>UNSENT</code></dfn> (numeric value 0) 
      <td>The object has been constructed. 
     <tr>
      <td><i>opened</i> 
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="const" data-export id="dom-xmlhttprequest-opened"><code>OPENED</code></dfn> (numeric value 1) 
      <td>The <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open" id="ref-for-dom-xmlhttprequest-open①"><code>open()</code></a> method has
   been successfully invoked. During this state request headers can be set using <a data-link-type="functionish" href="#dom-xmlhttprequest-setrequestheader" id="ref-for-dom-xmlhttprequest-setrequestheader①"><code>setRequestHeader()</code></a> and the fetch can be initiated using the <a data-link-type="functionish" href="#dom-xmlhttprequest-send" id="ref-for-dom-xmlhttprequest-send①"><code>send()</code></a> method. 
     <tr>
      <td><i>headers received</i> 
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="const" data-export id="dom-xmlhttprequest-headers_received"><code>HEADERS_RECEIVED</code></dfn> (numeric value 2) 
      <td>All redirects (if any) have been followed and all HTTP headers of the <a data-link-type="dfn" href="#response" id="ref-for-response">response</a> have been received. 
     <tr>
      <td><i>loading</i> 
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="const" data-export id="dom-xmlhttprequest-loading"><code>LOADING</code></dfn> (numeric value 3) 
      <td>The <a data-link-type="dfn" href="#response" id="ref-for-response①">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body">body</a> is being received. 
     <tr>
      <td><i>done</i> 
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="const" data-export id="dom-xmlhttprequest-done"><code>DONE</code></dfn> (numeric value 4) 
      <td>The data transfer has been completed or something went wrong during the transfer
   (e.g. infinite redirects). 
   </table>
   <h3 class="heading settled" data-level="4.5" id="request"><span class="secno">4.5. </span><span class="content">Request</span><a class="self-link" href="#request"></a></h3>
   <p>Each <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⑤">XMLHttpRequest</a></code> object has the following request-associated concepts: <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="request-method">request method</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="request-url">request URL</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="author-request-headers">author request headers</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="request-body">request body</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="synchronous-flag">synchronous flag</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="upload-complete-flag">upload complete flag</dfn>, <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="upload-listener-flag">upload listener flag</dfn>, and <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="timed-out-flag">timed out flag</dfn>. </p>
   <p>The <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers">author request headers</a> is an initially empty <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list" id="ref-for-concept-header-list">header list</a>. </p>
   <p>The <a data-link-type="dfn" href="#request-body" id="ref-for-request-body">request body</a> is initially null. </p>
   <p>The <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag">synchronous flag</a>, <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag">upload complete flag</a>, <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag">upload listener flag</a> and <a data-link-type="dfn" href="#timed-out-flag" id="ref-for-timed-out-flag">timed out flag</a> are initially unset. </p>
   <p class="note no-backref" id="event-listeners-and-preflight" role="note"><a class="self-link" href="#event-listeners-and-preflight"></a>Registering one or more event listeners
on an <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload②">XMLHttpRequestUpload</a></code> object will result in a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#cors-preflight-request" id="ref-for-cors-preflight-request">CORS-preflight request</a>. (That is
because registering an event listener causes the <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag①">upload listener flag</a> to be set, which in
turn causes the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#use-cors-preflight-flag" id="ref-for-use-cors-preflight-flag">use-CORS-preflight flag</a> to be set.) </p>
   <h4 class="heading settled" data-level="4.5.1" id="the-open()-method"><span class="secno">4.5.1. </span><span class="content">The <code>open()</code> method</span><a class="self-link" href="#the-open()-method"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open" id="ref-for-dom-xmlhttprequest-open②">open(<var>method</var>, <var>url</var> [, <var>async</var> = true [, <var>username</var> = null [, <var>password</var> = null]]])</a></code> 
    <dd>
     <p>Sets the <a data-link-type="dfn" href="#request-method" id="ref-for-request-method">request method</a>, <a data-link-type="dfn" href="#request-url" id="ref-for-request-url">request URL</a>, and <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①">synchronous flag</a>. </p>
     <p>Throws a "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#syntaxerror" id="ref-for-syntaxerror">SyntaxError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException">DOMException</a></code> if either <var>method</var> is not a
  valid HTTP method or <var>url</var> cannot be parsed. </p>
     <p>Throws a "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#securityerror" id="ref-for-securityerror">SecurityError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①">DOMException</a></code> if <var>method</var> is a
  case-insensitive match for `<code>CONNECT</code>`, `<code>TRACE</code>`, or `<code>TRACK</code>`. </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②">DOMException</a></code> if <var>async</var> is false, <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window">Window</a></code> object, and the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout①">timeout</a></code> attribute is not zero or the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①">responseType</a></code> attribute is not the empty string. </p>
   </dl>
   <p class="critical no-backref" id="sync-warning">Synchronous <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⑥">XMLHttpRequest</a></code> outside of workers is
in the process of being removed from the web platform as it has detrimental effects to the end
user’s experience. (This is a long process that takes many years.) Developers must not pass false
for the <var>async</var> argument when <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object①">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window①">Window</a></code> object. User
agents are strongly encouraged to warn about such usage in developer tools and may experiment with <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw">throwing</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror①">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③">DOMException</a></code> when it occurs. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-open"><code>open(<var>method</var>, <var>url</var>)</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export data-lt="open(method, url, async, username, password)|open(method, url, async, username)|open(method, url, async)" id="dom-xmlhttprequest-open-method-url-async-username-password"><code>open(<var>method</var>, <var>url</var>, <var>async</var>, <var>username</var>, <var>password</var>)</code></dfn> methods, when invoked, must run these steps: </p>
   <ol>
    <li>
     <p>Let <var>settingsObject</var> be <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object①">context object</a>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object" id="ref-for-relevant-settings-object">relevant settings object</a>. </p>
    <li>
     <p>If <var>settingsObject</var> has a <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document" id="ref-for-responsible-document">responsible document</a> and it is <em>not</em> <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/browsers.html#fully-active" id="ref-for-fully-active">fully active</a>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException④">DOMException</a></code>. </p>
    <li>
     <p>If <var>method</var> is not a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-method" id="ref-for-concept-method">method</a>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw②">throw</a> a
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#syntaxerror" id="ref-for-syntaxerror①">SyntaxError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑤">DOMException</a></code>. </p>
    <li>
     <p>If <var>method</var> is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#forbidden-method" id="ref-for-forbidden-method">forbidden method</a>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw③">throw</a> a
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#securityerror" id="ref-for-securityerror①">SecurityError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑥">DOMException</a></code>. </p>
    <li>
     <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-method-normalize" id="ref-for-concept-method-normalize">Normalize</a> <var>method</var>. </p>
    <li>
     <p>Let <var>parsedURL</var> be the result of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser" id="ref-for-concept-url-parser">parsing</a> <var>url</var> with <var>settingsObject</var>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url" id="ref-for-api-base-url">API base URL</a> and <var>settingsObject</var>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#api-url-character-encoding" id="ref-for-api-url-character-encoding">API URL character encoding</a>. </p>
    <li>
     <p>If <var>parsedURL</var> is failure, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw④">throw</a> a "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#syntaxerror" id="ref-for-syntaxerror②">SyntaxError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑦">DOMException</a></code>. </p>
    <li>
     <p>If the <var>async</var> argument is omitted, set <var>async</var> to true, and set <var>username</var> and <var>password</var> to null. </p>
     <p class="note" role="note">Unfortunately legacy content prevents treating the <var>async</var> argument being <code>undefined</code> identical from it being omitted. </p>
    <li>
     <p>If <var>parsedURL</var>’s <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-host" id="ref-for-concept-url-host">host</a> is non-null, then: </p>
     <ol>
      <li>
       <p>If the <var>username</var> argument is not null, <a data-link-type="dfn" href="https://url.spec.whatwg.org/#set-the-username" id="ref-for-set-the-username">set the username</a> given <var>parsedURL</var> and <var>username</var>. </p>
      <li>
       <p>If the <var>password</var> argument is not null, <a data-link-type="dfn" href="https://url.spec.whatwg.org/#set-the-password" id="ref-for-set-the-password">set the password</a> given <var>parsedURL</var> and <var>password</var>. </p>
     </ol>
    <li>
     <p>If <var>async</var> is false, <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object②">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window②">Window</a></code> object, and the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout②">timeout</a></code> attribute value is not zero or the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype②">responseType</a></code> attribute value is not the empty string, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw⑤">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror②">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑧">DOMException</a></code>. </p>
    <li>
     <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch-terminate" id="ref-for-concept-fetch-terminate①">Terminate</a> the ongoing fetch operated by the <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⑦">XMLHttpRequest</a></code> object. </p>
     <p class="note" role="note">A <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch①">fetch</a> can be
  ongoing at this point. </p>
    <li>
     <p>Set variables associated with the object as follows: </p>
     <ul>
      <li>
       <p>Unset the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①"><code>send()</code> flag</a> and <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag②">upload listener flag</a>. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#request-method" id="ref-for-request-method①">request method</a> to <var>method</var>. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#request-url" id="ref-for-request-url①">request URL</a> to <var>parsedURL</var>. </p>
      <li>
       <p>Set the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag②">synchronous flag</a>, if <var>async</var> is false, and unset
   the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag③">synchronous flag</a> otherwise. </p>
      <li>
       <p>Empty <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers①">author request headers</a>. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#response" id="ref-for-response②">response</a> to a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error">network error</a>. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes">received bytes</a> to the empty byte sequence. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object">response object</a> to null. </p>
     </ul>
     <p class="note" role="note"><a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type">Override MIME type</a> is not overridden here as the <code>overrideMimeType()</code> method can be invoked before the <code>open()</code> method. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state③">state</a> is not <i>opened</i>, then: </p>
     <ol>
      <li>
       <p>Set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state④">state</a> to <i>opened</i>. </p>
      <li>
       <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire">Fire an event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange②"><code>readystatechange</code></a> at <b>this</b>. </p>
     </ol>
   </ol>
   <p class="note" role="note">The reason there are two <code>open()</code> methods defined is due to a limitation of
the editing software used to write the XMLHttpRequest Standard. </p>
   <h4 class="heading settled" data-level="4.5.2" id="the-setrequestheader()-method"><span class="secno">4.5.2. </span><span class="content">The <code>setRequestHeader()</code> method</span><a class="self-link" href="#the-setrequestheader()-method"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-setrequestheader" id="ref-for-dom-xmlhttprequest-setrequestheader②">setRequestHeader(<var>name</var>, <var>value</var>)</a></code> 
    <dd>
     <p>Combines a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header" id="ref-for-concept-header">header</a> in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers②">author request headers</a>. </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑨">DOMException</a></code> if either <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state⑤">state</a> is not <i>opened</i> or the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag②"><code>send()</code> flag</a> is set. </p>
     <p>Throws a "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#syntaxerror" id="ref-for-syntaxerror③">SyntaxError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⓪">DOMException</a></code> if <var>name</var> is not a header name
  or if <var>value</var> is not a header value. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-setrequestheader"><code>setRequestHeader(<var>name</var>, <var>value</var>)</code></dfn> method must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state⑥">state</a> is not <i>opened</i>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw⑥">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror②">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①①">DOMException</a></code>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag③"><code>send()</code> flag</a> is set, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw⑦">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror③">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①②">DOMException</a></code>. </p>
    <li>
     <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-value-normalize" id="ref-for-concept-header-value-normalize">Normalize</a> <var>value</var>. </p>
    <li>
     <p>If <var>name</var> is not a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-name" id="ref-for-concept-header-name">name</a> or <var>value</var> is not a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-value" id="ref-for-concept-header-value">value</a>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw⑧">throw</a> a "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#syntaxerror" id="ref-for-syntaxerror④">SyntaxError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①③">DOMException</a></code>. </p>
     <p class="note no-backref" role="note">An empty byte sequence represents an empty <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header" id="ref-for-concept-header①">header</a> <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-value" id="ref-for-concept-header-value①">value</a>. </p>
    <li>
     <p>Terminate these steps if <var>name</var> is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#forbidden-header-name" id="ref-for-forbidden-header-name">forbidden header name</a>. </p>
    <li>
     <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-combine" id="ref-for-concept-header-list-combine">Combine</a> <var>name</var>/<var>value</var> in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers③">author request headers</a>. </p>
   </ol>
   <div class="example" id="example-setting-header-twice">
    <a class="self-link" href="#example-setting-header-twice"></a> 
    <p>Some simple code demonstrating what happens when setting the same
 header twice: </p>
<pre><code class="lang-javascript highlight"><c- c1>// The following script:</c->
<c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
client<c- p>.</c->open<c- p>(</c-><c- t>'GET'</c-><c- p>,</c-> <c- t>'demo.cgi'</c-><c- p>);</c->
client<c- p>.</c->setRequestHeader<c- p>(</c-><c- t>'X-Test'</c-><c- p>,</c-> <c- t>'one'</c-><c- p>);</c->
client<c- p>.</c->setRequestHeader<c- p>(</c-><c- t>'X-Test'</c-><c- p>,</c-> <c- t>'two'</c-><c- p>);</c->
client<c- p>.</c->send<c- p>();</c->

<c- c1>// …results in the following header being sent:</c->
<c- c1>// X-Test: one, two</c-></code></pre>
   </div>
   <h4 class="heading settled" data-level="4.5.3" id="the-timeout-attribute"><span class="secno">4.5.3. </span><span class="content">The <code>timeout</code> attribute</span><a class="self-link" href="#the-timeout-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout③">timeout</a></code> 
    <dd>
     <p>Can be set to a time in milliseconds. When set to a non-zero value will cause <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch②">fetching</a> to terminate after the given time has passed. When the time has passed, the
  request has not yet completed, and the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag④">synchronous flag</a> is unset, a <a class="idl-code" data-link-type="event" href="#event-xhr-timeout" id="ref-for-event-xhr-timeout②"><code>timeout</code></a> event will then be <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-dispatch" id="ref-for-concept-event-dispatch">dispatched</a>, or a
  "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#timeouterror" id="ref-for-timeouterror">TimeoutError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①④">DOMException</a></code> will be <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw⑨">thrown</a> otherwise (for the <a data-link-type="functionish" href="#dom-xmlhttprequest-send" id="ref-for-dom-xmlhttprequest-send②"><code>send()</code></a> method). </p>
     <p>When set: throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror③">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⑤">DOMException</a></code> if the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag⑤">synchronous flag</a> is set and <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object③">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window③">Window</a></code> object. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-timeout"><code>timeout</code></dfn> attribute must return its value. Initially its value must be zero. </p>
   <p>Setting the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout④">timeout</a></code> attribute must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object④">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window④">Window</a></code> object and the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag⑥">synchronous flag</a> is
 set, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⓪">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror④">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⑥">DOMException</a></code>. </p>
    <li>
     <p>Set its value to the new value. </p>
   </ol>
   <p class="note" role="note">This implies that the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout⑤">timeout</a></code> attribute can be
set while <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch③">fetching</a> is in
progress. If that occurs it will still be measured relative to the start
of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch④">fetching</a>. </p>
   <h4 class="heading settled" data-level="4.5.4" id="the-withcredentials-attribute"><span class="secno">4.5.4. </span><span class="content">The <code>withCredentials</code> attribute</span><a class="self-link" href="#the-withcredentials-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials①">withCredentials</a></code> 
    <dd>
     <p>True when <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#credentials" id="ref-for-credentials">credentials</a> are to be included in a cross-origin request. False when they are
  to be excluded in a cross-origin request and when cookies are to be ignored in its response.
  Initially false. </p>
     <p>When set: throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror④">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⑦">DOMException</a></code> if <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state⑦">state</a> is not <i>unsent</i> or <i>opened</i>, or if the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag④"><code>send()</code> flag</a> is set. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-withcredentials"><code>withCredentials</code></dfn> attribute must return its value. Initially its value must be false. </p>
   <p>Setting the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials②">withCredentials</a></code> attribute must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state⑧">state</a> is not <i>unsent</i> or <i>opened</i>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①①">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror⑤">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⑧">DOMException</a></code>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag⑤"><code>send()</code> flag</a> is set, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①②">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror⑥">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①⑨">DOMException</a></code>. </p>
    <li>
     <p>Set the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials③">withCredentials</a></code> attribute’s value to the given value. </p>
   </ol>
   <p class="note" role="note">The <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials④">withCredentials</a></code> attribute has no effect when <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch⑤">fetching</a> <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/origin.html#same-origin" id="ref-for-same-origin">same-origin</a> resources. </p>
   <h4 class="heading settled" data-level="4.5.5" id="the-upload-attribute"><span class="secno">4.5.5. </span><span class="content">The <code>upload</code> attribute</span><a class="self-link" href="#the-upload-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-upload" id="ref-for-dom-xmlhttprequest-upload①">upload</a></code> 
    <dd>
     <p>Returns the associated <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload③">XMLHttpRequestUpload</a></code> object. It can be used to gather transmission information when data is
 transferred to a server. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-upload"><code>upload</code></dfn> attribute must return the associated <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload④">XMLHttpRequestUpload</a></code> object. </p>
   <p class="note" role="note">As indicated earlier, each <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⑧">XMLHttpRequest</a></code> object has an associated <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload⑤">XMLHttpRequestUpload</a></code> object. </p>
   <h4 class="heading settled" data-level="4.5.6" id="the-send()-method"><span class="secno">4.5.6. </span><span class="content">The <code>send()</code> method</span><a class="self-link" href="#the-send()-method"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-send" id="ref-for-dom-xmlhttprequest-send③">send([<var>body</var> = null])</a></code> 
    <dd>
     <p>Initiates the request. The <var>body</var> argument provides the <a data-link-type="dfn" href="#request-body" id="ref-for-request-body①">request body</a>, if any,
  and is ignored if the <a data-link-type="dfn" href="#request-method" id="ref-for-request-method②">request method</a> is <code>GET</code> or <code>HEAD</code>. </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror⑦">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⓪">DOMException</a></code> if either <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state⑨">state</a> is not <i>opened</i> or the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag⑥"><code>send()</code> flag</a> is set. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export data-lt="send(body)|send()" id="dom-xmlhttprequest-send"><code>send(<var>body</var>)</code></dfn> method must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⓪">state</a> is not <i>opened</i>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①③">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror⑧">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②①">DOMException</a></code>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag⑦"><code>send()</code> flag</a> is set, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①④">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror⑨">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②②">DOMException</a></code>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#request-method" id="ref-for-request-method③">request method</a> is <code>GET</code> or <code>HEAD</code>, set <var>body</var> to null. </p>
    <li>
     <p>If <var>body</var> is not null, then: </p>
     <ol>
      <li>
       <p>Let <var>extractedContentType</var> be null. </p>
      <li>
       <p>If <var>body</var> is a <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#document" id="ref-for-document②">Document</a></code>, then set <a data-link-type="dfn" href="#request-body" id="ref-for-request-body②">request body</a> to <var>body</var>, <a data-link-type="dfn" href="https://w3c.github.io/DOM-Parsing/#dfn-fragment-serializing-algorithm" id="ref-for-dfn-fragment-serializing-algorithm">serialized</a>, <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-obtain-unicode" id="ref-for-dfn-obtain-unicode">converted to Unicode</a>, and <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8-encode" id="ref-for-utf-8-encode">UTF-8 encoded</a>. </p>
      <li>
       <p>Otherwise, set <a data-link-type="dfn" href="#request-body" id="ref-for-request-body③">request body</a> and <var>extractedContentType</var> to the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-bodyinit-extract" id="ref-for-concept-bodyinit-extract">extracting</a> <var>body</var>. </p>
      <li>
       <p>If <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers④">author request headers</a> <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#header-list-contains" id="ref-for-header-list-contains">contains</a> `<code>Content-Type</code>`, then: </p>
       <ol>
        <li>
         <p>If <var>body</var> is a <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#document" id="ref-for-document③">Document</a></code> or a <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑥">USVString</a></code>, then: </p>
         <ol>
          <li>
           <p>Let <var>originalAuthorContentType</var> be the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-value" id="ref-for-concept-header-value②">value</a> of the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header" id="ref-for-concept-header②">header</a> whose <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-name" id="ref-for-concept-header-name①">name</a> is a <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-case-insensitive" id="ref-for-byte-case-insensitive">byte-case-insensitive</a> match for
       `<code>Content-Type</code>` in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers⑤">author request headers</a>. </p>
          <li>
           <p>Let <var>contentTypeRecord</var> be the result of <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parse-a-mime-type-from-bytes" id="ref-for-parse-a-mime-type-from-bytes">parsing</a> <var>originalAuthorContentType</var>. </p>
          <li>
           <p>If <var>contentTypeRecord</var> is not failure, <var>contentTypeRecord</var>’s <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parameters" id="ref-for-parameters">parameters</a>["<code>charset</code>"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists">exists</a>, and <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parameters" id="ref-for-parameters①">parameters</a>["<code>charset</code>"] is not an <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#ascii-case-insensitive" id="ref-for-ascii-case-insensitive">ASCII case-insensitive</a> match for "<code>UTF-8</code>", then: </p>
           <ol>
            <li>
             <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set">Set</a> <var>contentTypeRecord</var>’s <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parameters" id="ref-for-parameters②">parameters</a>["<code>charset</code>"] to "<code>UTF-8</code>". </p>
            <li>
             <p>Let <var>newContentTypeSerialized</var> be the result of <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#serialize-a-mime-type-to-bytes" id="ref-for-serialize-a-mime-type-to-bytes">serializing</a> <var>contentTypeRecord</var>. </p>
            <li>
             <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-set" id="ref-for-concept-header-list-set">Set</a> `<code>Content-Type</code>`/<var>newContentTypeSerialized</var> in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers⑥">author request headers</a>. </p>
           </ol>
         </ol>
       </ol>
      <li>
        Otherwise: 
       <ol>
        <li>
         <p>If <var>body</var> is an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#html-document" id="ref-for-html-document">HTML document</a>, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-set" id="ref-for-concept-header-list-set①">set</a> `<code>Content-Type</code>`/`<code>text/html;charset=UTF-8</code>` in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers⑦">author request headers</a>. </p>
        <li>
         <p>Otherwise, if <var>body</var> is an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#xml-document" id="ref-for-xml-document">XML document</a>, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-set" id="ref-for-concept-header-list-set②">set</a> `<code>Content-Type</code>`/`<code>application/xml;charset=UTF-8</code>` in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers⑧">author request headers</a>. </p>
        <li>
         <p>Otherwise, if <var>extractedContentType</var> is not null, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-set" id="ref-for-concept-header-list-set③">set</a> `<code>Content-Type</code>`/<var>extractedContentType</var> in <a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers⑨">author request headers</a>. </p>
       </ol>
     </ol>
    <li>
     <p>If one or more event listeners are registered on the associated <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload⑥">XMLHttpRequestUpload</a></code> object, then set <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag③">upload listener flag</a>. </p>
    <li>
     <p>Let <var>req</var> be a new <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request" id="ref-for-concept-request">request</a>, initialized as
  follows: </p>
     <dl>
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-method" id="ref-for-concept-request-method">method</a> 
      <dd><a data-link-type="dfn" href="#request-method" id="ref-for-request-method④">request method</a> 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-url" id="ref-for-concept-request-url">url</a> 
      <dd><a data-link-type="dfn" href="#request-url" id="ref-for-request-url②">request URL</a> 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-header-list" id="ref-for-concept-request-header-list">header list</a> 
      <dd><a data-link-type="dfn" href="#author-request-headers" id="ref-for-author-request-headers①⓪">author request headers</a> 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#unsafe-request-flag" id="ref-for-unsafe-request-flag">unsafe-request flag</a> 
      <dd>Set. 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body">body</a> 
      <dd><a data-link-type="dfn" href="#request-body" id="ref-for-request-body④">request body</a> 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-client" id="ref-for-concept-request-client">client</a> 
      <dd><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object②">context object</a>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object" id="ref-for-relevant-settings-object①">relevant settings object</a> 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#synchronous-flag" id="ref-for-synchronous-flag⑦">synchronous flag</a> 
      <dd>Set if the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag⑧">synchronous flag</a> is set. 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-mode" id="ref-for-concept-request-mode">mode</a> 
      <dd>"<code>cors</code>" 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#use-cors-preflight-flag" id="ref-for-use-cors-preflight-flag①">use-CORS-preflight flag</a> 
      <dd>Set if <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag④">upload listener flag</a> is set. 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-credentials-mode" id="ref-for-concept-request-credentials-mode">credentials mode</a> 
      <dd>If the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials⑤">withCredentials</a></code> attribute value is true, "<code>include</code>", and "<code>same-origin</code>"
   otherwise. 
      <dt><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag" id="ref-for-concept-request-use-url-credentials-flag">use-URL-credentials flag</a> 
      <dd>Set if either <a data-link-type="dfn" href="#request-url" id="ref-for-request-url③">request URL</a>’s <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-username" id="ref-for-concept-url-username">username</a> is not the empty string or <a data-link-type="dfn" href="#request-url" id="ref-for-request-url④">request URL</a>’s <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-password" id="ref-for-concept-url-password">password</a> is non-null. 
     </dl>
    <li>
     <p>Unset the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag①">upload complete flag</a>. </p>
    <li>
     <p>Unset the <a data-link-type="dfn" href="#timed-out-flag" id="ref-for-timed-out-flag①">timed out flag</a>. </p>
    <li>
     <p>If <var>req</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body①">body</a> is null,
 set the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag②">upload complete flag</a>. </p>
    <li>
     <p>Set the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag⑧"><code>send()</code> flag</a>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag⑨">synchronous flag</a> is unset, then: </p>
     <ol>
      <li>
       <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadstart" id="ref-for-event-xhr-loadstart①"><code>loadstart</code></a> at <b>this</b> with 0 and 0. </p>
      <li>
       <p>If the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag③">upload complete flag</a> is unset and <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag⑤">upload listener flag</a> is
   set, then <a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress①">fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadstart" id="ref-for-event-xhr-loadstart②"><code>loadstart</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload⑦">XMLHttpRequestUpload</a></code> object with 0 and <var>req</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body②">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-total-bytes" id="ref-for-concept-body-total-bytes">total bytes</a>. </p>
      <li>
       <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①①">state</a> is not <i>opened</i> or the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag⑨"><code>send()</code> flag</a> is unset, then
   return. </p>
      <li>
       <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch⑥">Fetch</a> <var>req</var>.
    Handle the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-task" id="ref-for-concept-task">tasks</a> <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task" id="ref-for-queue-a-task">queued</a> on the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#networking-task-source" id="ref-for-networking-task-source">networking task source</a> per below. </p>
       <p>Run these steps <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel" id="ref-for-in-parallel">in parallel</a>: </p>
       <ol>
        <li>
         <p>Wait until either <var>req</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#done-flag" id="ref-for-done-flag">done flag</a> is set or </p>
         <ol>
          <li>
           <p>the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout⑥">timeout</a></code> attribute value number of milliseconds has
       passed since these steps started </p>
          <li>
           <p>while <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout⑦">timeout</a></code> attribute value is not zero. </p>
         </ol>
        <li>
         <p>If <var>req</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#done-flag" id="ref-for-done-flag①">done flag</a> is unset, then set the <a data-link-type="dfn" href="#timed-out-flag" id="ref-for-timed-out-flag②">timed out flag</a> and <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch-terminate" id="ref-for-concept-fetch-terminate②">terminate</a> <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch⑦">fetching</a>. </p>
       </ol>
       <p>To <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#process-request-body" id="ref-for-process-request-body">process request body</a> for <var>request</var>, run these steps: </p>
       <ol>
        <li>
         <p>If not roughly 50ms have passed since these steps were last invoked,
     terminate these steps. </p>
        <li>
         <p>If <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag⑥">upload listener flag</a> is set, then <a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress②">fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress②"><code>progress</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload⑧">XMLHttpRequestUpload</a></code> object with <var>request</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body③">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-transmitted" id="ref-for-concept-body-transmitted">transmitted bytes</a> and <var>request</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body④">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-total-bytes" id="ref-for-concept-body-total-bytes①">total bytes</a>. </p>
       </ol>
       <p class="note" role="note">These steps are only invoked when new bytes are transmitted. </p>
       <p>To <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#process-request-end-of-body" id="ref-for-process-request-end-of-body">process request end-of-body</a> for <var>request</var>, run these steps: </p>
       <ol>
        <li>
         <p>Set the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag④">upload complete flag</a>. </p>
        <li>
         <p>If <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag⑦">upload listener flag</a> is unset, then terminate these steps. </p>
        <li>
         <p>Let <var>transmitted</var> be <var>request</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body⑤">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-transmitted" id="ref-for-concept-body-transmitted①">transmitted bytes</a>. </p>
        <li>
         <p>Let <var>length</var> be <var>request</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-body" id="ref-for-concept-request-body⑥">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-total-bytes" id="ref-for-concept-body-total-bytes②">total bytes</a>. </p>
        <li>
         <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress③">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress③"><code>progress</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload⑨">XMLHttpRequestUpload</a></code> object with <var>transmitted</var> and <var>length</var>. </p>
        <li>
         <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress④">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-load" id="ref-for-event-xhr-load②"><code>load</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①⓪">XMLHttpRequestUpload</a></code> object with <var>transmitted</var> and <var>length</var>. </p>
        <li>
         <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress⑤">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend②"><code>loadend</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①①">XMLHttpRequestUpload</a></code> object with <var>transmitted</var> and <var>length</var>. </p>
       </ol>
       <p>To <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#process-response" id="ref-for-process-response">process response</a> for <var>response</var>, run these steps: </p>
       <ol>
        <li>
         <p>Set <a data-link-type="dfn" href="#response" id="ref-for-response③">response</a> to <var>response</var>. </p>
        <li>
         <p><a data-link-type="dfn" href="#handle-errors" id="ref-for-handle-errors">Handle errors</a> for <var>response</var>. </p>
        <li>
         <p>If <a data-link-type="dfn" href="#response" id="ref-for-response④">response</a> is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error①">network error</a>,
     return. </p>
        <li>
         <p>Set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①②">state</a> to <i>headers received</i>. </p>
        <li>
         <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire①">Fire an event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange③"><code>readystatechange</code></a> at <b>this</b>. </p>
        <li>
         <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①③">state</a> is not <i>headers received</i>, then return. </p>
        <li>
         <p>If <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①">body</a> is null,
     then run <a data-link-type="dfn" href="#handle-response-end-of-body" id="ref-for-handle-response-end-of-body">handle response end-of-body</a> and return. </p>
        <li>
         <p>Let <var>reader</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-get-reader" id="ref-for-concept-get-reader">getting a reader</a> from <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body②">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-stream" id="ref-for-concept-body-stream">stream</a>. </p>
         <p><span class="note no-backref">This operation will not throw an exception.</span> </p>
        <li>
         <p>Let <var>read</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-read-chunk-from-readablestream" id="ref-for-concept-read-chunk-from-readablestream">reading a chunk</a> from <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body③">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-stream" id="ref-for-concept-body-stream①">stream</a> with <var>reader</var>. </p>
         <p>When <var>read</var> is fulfilled with an object whose <code>done</code> property is false
      and whose <code>value</code> property is a <code>Uint8Array</code> object, run these
      steps and then run this step again: </p>
         <ol>
          <li>
           <p>Append the <code>value</code> property to <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes①">received bytes</a>. </p>
          <li>
           <p>If not roughly 50ms have passed since these steps were last invoked, then terminate
       these steps. </p>
          <li>
           <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①④">state</a> is <i>headers received</i>, then set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⑤">state</a> to <i>loading</i>. </p>
          <li>
           <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire②">Fire an event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange④"><code>readystatechange</code></a> at <b>this</b>. </p>
           <p class="note no-backref" role="note">Web compatibility is the reason <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange⑤"><code>readystatechange</code></a> fires more often than <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⑥">state</a> changes. </p>
          <li>
           <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress⑥">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress④"><code>progress</code></a> at <b>this</b> with <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body④">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-transmitted" id="ref-for-concept-body-transmitted②">transmitted bytes</a> and <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body⑤">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-total-bytes" id="ref-for-concept-body-total-bytes③">total bytes</a>. </p>
         </ol>
         <p class="note" role="note">These steps are only invoked when new bytes are transmitted. </p>
         <p>When <var>read</var> is fulfilled with an object whose <code>done</code> property is true,
      run <a data-link-type="dfn" href="#handle-response-end-of-body" id="ref-for-handle-response-end-of-body①">handle response end-of-body</a> for <var>response</var>. </p>
         <p>When <var>read</var> is rejected with an exception, run <a data-link-type="dfn" href="#handle-errors" id="ref-for-handle-errors①">handle errors</a> for <var>response</var>. </p>
       </ol>
     </ol>
    <li>
     <p>Otherwise, if the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①⓪">synchronous flag</a> is set, run these steps: </p>
     <ol>
      <li>
       <p>If <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object③">context object</a>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object" id="ref-for-relevant-settings-object②">relevant settings object</a> has a <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document" id="ref-for-responsible-document①">responsible document</a> which is <em>not</em> <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#allowed-to-use" id="ref-for-allowed-to-use">allowed to use</a> the
   "<code><a data-link-type="dfn" href="#sync-xhr" id="ref-for-sync-xhr">sync-xhr</a></code>" feature, then run <a data-link-type="dfn" href="#handle-response-end-of-body" id="ref-for-handle-response-end-of-body②">handle response end-of-body</a> for a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error②">network error</a> and return. </p>
      <li>
       <p>Let <var>response</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch⑧">fetching</a> <var>req</var>. </p>
       <p>If the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout⑧">timeout</a></code> attribute value is not zero, then set the <a data-link-type="dfn" href="#timed-out-flag" id="ref-for-timed-out-flag③">timed out flag</a> and <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch-terminate" id="ref-for-concept-fetch-terminate③">terminate</a> <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch⑨">fetching</a> if it has not
    returned within the amount of milliseconds from the <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout⑨">timeout</a></code>. </p>
      <li>
       <p>If <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body⑥">body</a> is null,
   then run <a data-link-type="dfn" href="#handle-response-end-of-body" id="ref-for-handle-response-end-of-body③">handle response end-of-body</a> and return. </p>
      <li>
       <p>Let <var>reader</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-get-reader" id="ref-for-concept-get-reader①">getting a reader</a> from <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body⑦">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-stream" id="ref-for-concept-body-stream②">stream</a>. </p>
       <p><span class="note no-backref">This operation will not throw an exception.</span> </p>
      <li>
       <p>Let <var>promise</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-read-all-bytes-from-readablestream" id="ref-for-concept-read-all-bytes-from-readablestream">reading all bytes</a> from <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body⑧">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-stream" id="ref-for-concept-body-stream③">stream</a> with <var>reader</var>. </p>
      <li>
       <p>Wait for <var>promise</var> to be fulfilled or rejected. </p>
      <li>
       <p>If <var>promise</var> is fulfilled with <var>bytes</var>, then append <var>bytes</var> to <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes②">received bytes</a>. </p>
      <li>
       <p>Run <a data-link-type="dfn" href="#handle-response-end-of-body" id="ref-for-handle-response-end-of-body④">handle response end-of-body</a> for <var>response</var>. </p>
     </ol>
   </ol>
   <p id="handle-response-end-of-file">To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="handle-response-end-of-body">handle response end-of-body</dfn> for <var>response</var>, run these steps: </p>
   <ol>
    <li>
     <p>If the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①①">synchronous flag</a> is set, set <a data-link-type="dfn" href="#response" id="ref-for-response⑤">response</a> to <var>response</var>. </p>
    <li>
     <p><a data-link-type="dfn" href="#handle-errors" id="ref-for-handle-errors②">Handle errors</a> for <var>response</var>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#response" id="ref-for-response⑥">response</a> is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error③">network error</a>, return. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①②">synchronous flag</a> is unset, update <a data-link-type="dfn" href="#response" id="ref-for-response⑦">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body⑨">body</a> using <var>response</var>. </p>
    <li>
     <p>Let <var>transmitted</var> be <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①⓪">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-transmitted" id="ref-for-concept-body-transmitted③">transmitted bytes</a>. </p>
    <li>
     <p>Let <var>length</var> be <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①①">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-total-bytes" id="ref-for-concept-body-total-bytes④">total bytes</a>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①③">synchronous flag</a> is unset, <a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress⑦">fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress⑤"><code>progress</code></a> at <b>this</b> with <var>transmitted</var> and <var>length</var>. </p>
    <li>
     <p>Set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⑦">state</a> to <i>done</i>. </p>
    <li>
     <p>Unset the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①⓪"><code>send()</code> flag</a>. </p>
    <li>
     <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire③">Fire an event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange⑥"><code>readystatechange</code></a> at <b>this</b>. </p>
    <li>
     <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress⑧">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-load" id="ref-for-event-xhr-load③"><code>load</code></a> at <b>this</b> with <var>transmitted</var> and <var>length</var>. </p>
    <li>
     <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress⑨">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend③"><code>loadend</code></a> at <b>this</b> with <var>transmitted</var> and <var>length</var>. </p>
   </ol>
   <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="handle-errors">handle errors</dfn> for <var>response</var> run these steps: </p>
   <ol>
    <li>
     <p>If the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①①"><code>send()</code> flag</a> is unset, return. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#timed-out-flag" id="ref-for-timed-out-flag④">timed out flag</a> is set, then run the <a data-link-type="dfn" href="#request-error-steps" id="ref-for-request-error-steps">request error steps</a> for event <a class="idl-code" data-link-type="event" href="#event-xhr-timeout" id="ref-for-event-xhr-timeout③"><code>timeout</code></a> and exception "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#timeouterror" id="ref-for-timeouterror①">TimeoutError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②③">DOMException</a></code>. </p>
    <li>
     <p>If <var>response</var> is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error④">network error</a>, then run the <a data-link-type="dfn" href="#request-error-steps" id="ref-for-request-error-steps①">request error steps</a> for event <a class="idl-code" data-link-type="event" href="#event-xhr-error" id="ref-for-event-xhr-error②"><code>error</code></a> and exception "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#networkerror" id="ref-for-networkerror">NetworkError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②④">DOMException</a></code>. </p>
    <li>
     <p>Otherwise, if <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①②">body</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-body-stream" id="ref-for-concept-body-stream④">stream</a> is <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-readablestream-errored" id="ref-for-concept-readablestream-errored">errored</a>, then: </p>
     <ol>
      <li>
       <p>Set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⑧">state</a> to <i>done</i>. </p>
      <li>
       <p>Unset the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①②"><code>send()</code> flag</a>. </p>
      <li>
       <p>Set <a data-link-type="dfn" href="#response" id="ref-for-response⑧">response</a> to a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error⑤">network error</a>. </p>
     </ol>
    <li>
     <p>Otherwise, if <var>response</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-aborted" id="ref-for-concept-response-aborted">aborted flag</a> is set, then run the <a data-link-type="dfn" href="#request-error-steps" id="ref-for-request-error-steps②">request error steps</a> for event <a class="idl-code" data-link-type="event" href="#event-xhr-abort" id="ref-for-event-xhr-abort②"><code>abort</code></a> and exception
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#aborterror" id="ref-for-aborterror">AbortError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⑤">DOMException</a></code>. </p>
   </ol>
   <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="request-error-steps">request error steps</dfn> for event <var>event</var> and optionally an
exception <var>exception</var> are: </p>
   <ol>
    <li>
     <p>Set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state①⑨">state</a> to <i>done</i>. </p>
    <li>
     <p>Unset the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①③"><code>send()</code> flag</a>. </p>
    <li>
     <p>Set <a data-link-type="dfn" href="#response" id="ref-for-response⑨">response</a> to a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error⑥">network error</a>. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①④">synchronous flag</a> is set, <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⑤">throw</a> an <var>exception</var> exception. </p>
    <li>
     <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire④">Fire an event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange⑦"><code>readystatechange</code></a> at <b>this</b>. </p>
     <p class="note" role="note">At this point it is clear that the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①⑤">synchronous flag</a> is unset. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag⑤">upload complete flag</a> is unset, then: </p>
     <ol>
      <li>
       <p>Set the <a data-link-type="dfn" href="#upload-complete-flag" id="ref-for-upload-complete-flag⑥">upload complete flag</a>. </p>
      <li>
       <p>If the <a data-link-type="dfn" href="#upload-listener-flag" id="ref-for-upload-listener-flag⑧">upload listener flag</a> is set, then: </p>
       <ol>
        <li>
         <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress①⓪">Fire a progress event</a> named <var>event</var> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①②">XMLHttpRequestUpload</a></code> object with 0 and 0. </p>
        <li>
         <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress①①">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend④"><code>loadend</code></a> at <b>this</b>’s <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①③">XMLHttpRequestUpload</a></code> object with 0 and 0. </p>
       </ol>
     </ol>
    <li>
     <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress①②">Fire a progress event</a> named <var>event</var> at <b>this</b> with 0 and 0. </p>
    <li>
     <p><a data-link-type="dfn" href="#concept-event-fire-progress" id="ref-for-concept-event-fire-progress①③">Fire a progress event</a> named <a class="idl-code" data-link-type="event" href="#event-xhr-loadend" id="ref-for-event-xhr-loadend⑤"><code>loadend</code></a> at <b>this</b> with 0 and 0. </p>
   </ol>
   <h4 class="heading settled" data-level="4.5.7" id="the-abort()-method"><span class="secno">4.5.7. </span><span class="content">The <code>abort()</code> method</span><a class="self-link" href="#the-abort()-method"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-abort" id="ref-for-dom-xmlhttprequest-abort①">abort()</a></code> 
    <dd>Cancels any network activity. 
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-abort"><code>abort()</code></dfn> method,
when invoked, must run these steps: </p>
   <ol>
    <li>
     <p><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch-terminate" id="ref-for-concept-fetch-terminate④">Terminate</a> the ongoing fetch with the <i>aborted</i> flag set. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⓪">state</a> is either <i>opened</i> with the <a data-link-type="dfn" href="#send-flag" id="ref-for-send-flag①④"><code>send()</code> flag</a> set, <i>headers received</i>, or <i>loading</i>, run the <a data-link-type="dfn" href="#request-error-steps" id="ref-for-request-error-steps③">request error steps</a> for event <a class="idl-code" data-link-type="event" href="#event-xhr-abort" id="ref-for-event-xhr-abort③"><code>abort</code></a>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②①">state</a> is <i>done</i>, then set <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②②">state</a> to <i>unsent</i> and <a data-link-type="dfn" href="#response" id="ref-for-response①⓪">response</a> to a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error⑦">network error</a>. </p>
     <p class="note" role="note">No <a class="idl-code" data-link-type="event" href="#event-xhr-readystatechange" id="ref-for-event-xhr-readystatechange⑧"><code>readystatechange</code></a> event
  is dispatched. </p>
   </ol>
   <h3 class="heading settled" data-level="4.6" id="xmlhttprequest-response"><span class="secno">4.6. </span><span class="content">Response</span><a class="self-link" href="#xmlhttprequest-response"></a></h3>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest①⑨">XMLHttpRequest</a></code> has an associated <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="response">response</dfn>. Unless stated
otherwise it is a <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-network-error" id="ref-for-concept-network-error⑧">network error</a>. </p>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest②⓪">XMLHttpRequest</a></code> also has an associated <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="received-bytes">received bytes</dfn> (a byte
sequence). Unless stated otherwise it is the empty byte sequence. </p>
   <h4 class="heading settled" data-level="4.6.1" id="the-responseurl-attribute"><span class="secno">4.6.1. </span><span class="content">The <code>responseURL</code> attribute</span><a class="self-link" href="#the-responseurl-attribute"></a></h4>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-responseurl"><code>responseURL</code></dfn> attribute
must return the empty string if <a data-link-type="dfn" href="#response" id="ref-for-response①①">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-url" id="ref-for-concept-response-url">url</a> is null and its <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer" id="ref-for-concept-url-serializer">serialization</a> with the <i>exclude fragment flag</i> set otherwise. </p>
   <h4 class="heading settled" data-level="4.6.2" id="the-status-attribute"><span class="secno">4.6.2. </span><span class="content">The <code>status</code> attribute</span><a class="self-link" href="#the-status-attribute"></a></h4>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-status"><code>status</code></dfn> attribute must return the <a data-link-type="dfn" href="#response" id="ref-for-response①②">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-status" id="ref-for-concept-response-status">status</a>. </p>
   <h4 class="heading settled" data-level="4.6.3" id="the-statustext-attribute"><span class="secno">4.6.3. </span><span class="content">The <code>statusText</code> attribute</span><a class="self-link" href="#the-statustext-attribute"></a></h4>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-statustext"><code>statusText</code></dfn> attribute must return the <a data-link-type="dfn" href="#response" id="ref-for-response①③">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-status-message" id="ref-for-concept-response-status-message">status message</a>. </p>
   <h4 class="heading settled" data-level="4.6.4" id="the-getresponseheader()-method"><span class="secno">4.6.4. </span><span class="content">The <code>getResponseHeader()</code> method</span><a class="self-link" href="#the-getresponseheader()-method"></a></h4>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-getresponseheader"><code>getResponseHeader(<var>name</var>)</code></dfn> method,
when invoked, must return the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-get" id="ref-for-concept-header-list-get">getting</a> <var>name</var> from <a data-link-type="dfn" href="#response" id="ref-for-response①④">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-header-list" id="ref-for-concept-response-header-list">header list</a> </p>
   <p class="note no-backref" role="note">The Fetch Standard filters <a data-link-type="dfn" href="#response" id="ref-for-response①⑤">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-header-list" id="ref-for-concept-response-header-list①">header list</a>. <a data-link-type="biblio" href="#biblio-fetch">[FETCH]</a> </p>
   <div class="example" id="example-getresponseheader">
    <a class="self-link" href="#example-getresponseheader"></a> 
    <p>For the following script: </p>
<pre><code class="lang-javascript highlight"><c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
client<c- p>.</c->open<c- p>(</c-><c- u>"GET"</c-><c- p>,</c-> <c- u>"unicorns-are-awesome.txt"</c-><c- p>,</c-> <c- kc>true</c-><c- p>);</c->
client<c- p>.</c->send<c- p>();</c->
client<c- p>.</c->onreadystatechange <c- o>=</c-> <c- a>function</c-><c- p>()</c-> <c- p>{</c->
  <c- k>if</c-><c- p>(</c-><c- k>this</c-><c- p>.</c->readyState <c- o>==</c-> <c- k>this</c-><c- p>.</c->HEADERS_RECEIVED<c- p>)</c-> <c- p>{</c->
    print<c- p>(</c->client<c- p>.</c->getResponseHeader<c- p>(</c-><c- u>"Content-Type"</c-><c- p>));</c->
  <c- p>}</c->
<c- p>}</c-></code></pre>
    <p>The <code>print()</code> function will get to process something like: </p>
<pre><code>text/plain; charset=UTF-8</code></pre>
   </div>
   <h4 class="heading settled" data-level="4.6.5" id="the-getallresponseheaders()-method"><span class="secno">4.6.5. </span><span class="content">The <code>getAllResponseHeaders()</code> method</span><a class="self-link" href="#the-getallresponseheaders()-method"></a></h4>
   <p>A <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-sequence" id="ref-for-byte-sequence">byte sequence</a> <var>a</var> is <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="legacy-uppercased-byte-less-than">legacy-uppercased-byte less than</dfn> a <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-sequence" id="ref-for-byte-sequence①">byte sequence</a> <var>b</var> if the following steps return true: </p>
   <ol>
    <li>
     <p>Let <var>A</var> be <var>a</var>, <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-uppercase" id="ref-for-byte-uppercase">byte-uppercased</a>. </p>
    <li>
     <p>Let <var>B</var> be <var>b</var>, <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-uppercase" id="ref-for-byte-uppercase①">byte-uppercased</a>. </p>
    <li>
     <p>Return <var>A</var> is <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#byte-less-than" id="ref-for-byte-less-than">byte less than</a> <var>B</var>. </p>
   </ol>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-getallresponseheaders"><code>getAllResponseHeaders()</code></dfn> method, when invoked, must run these steps: </p>
   <ol>
    <li>
     <p>Let <var>output</var> be an empty byte sequence. </p>
    <li>
     <p>Let <var>initialHeaders</var> be the result of running <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine" id="ref-for-concept-header-list-sort-and-combine">sort and combine</a> with <a data-link-type="dfn" href="#response" id="ref-for-response①⑥">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-header-list" id="ref-for-concept-response-header-list②">header list</a>. </p>
    <li>
     <p>Let <var>headers</var> be the result of <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-sort-in-ascending-order" id="ref-for-list-sort-in-ascending-order">sorting</a> <var>initialHeaders</var> in
  ascending order, with <var>a</var> being less than <var>b</var> if <var>a</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-name" id="ref-for-concept-header-name②">name</a> is <a data-link-type="dfn" href="#legacy-uppercased-byte-less-than" id="ref-for-legacy-uppercased-byte-less-than">legacy-uppercased-byte less than</a> <var>b</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-name" id="ref-for-concept-header-name③">name</a>. </p>
     <p class="note" role="note">Unfortunately, this is needed for compatibility with deployed content. </p>
    <li>
     <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate">For each</a> <var>header</var> in <var>headers</var>, append <var>header</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-name" id="ref-for-concept-header-name④">name</a>, followed by a 0x3A 0x20 byte pair, followed by <var>header</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-value" id="ref-for-concept-header-value③">value</a>, followed by a 0x0D 0x0A byte pair, to <var>output</var>. </p>
    <li>
     <p>Return <var>output</var>. </p>
   </ol>
   <p class="note no-backref" role="note">The Fetch Standard filters <a data-link-type="dfn" href="#response" id="ref-for-response①⑦">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-header-list" id="ref-for-concept-response-header-list③">header list</a>. <a data-link-type="biblio" href="#biblio-fetch">[FETCH]</a> </p>
   <div class="example" id="example-getresponseheaders">
    <a class="self-link" href="#example-getresponseheaders"></a> 
    <p>For the following script: </p>
<pre><code class="lang-javascript highlight"><c- a>var</c-> client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>();</c->
client<c- p>.</c->open<c- p>(</c-><c- u>"GET"</c-><c- p>,</c-> <c- u>"narwhals-too.txt"</c-><c- p>,</c-> <c- kc>true</c-><c- p>);</c->
client<c- p>.</c->send<c- p>();</c->
client<c- p>.</c->onreadystatechange <c- o>=</c-> <c- a>function</c-><c- p>()</c-> <c- p>{</c->
  <c- k>if</c-><c- p>(</c-><c- k>this</c-><c- p>.</c->readyState <c- o>==</c-> <c- k>this</c-><c- p>.</c->HEADERS_RECEIVED<c- p>)</c-> <c- p>{</c->
    print<c- p>(</c-><c- k>this</c-><c- p>.</c->getAllResponseHeaders<c- p>());</c->
  <c- p>}</c->
<c- p>}</c-></code></pre>
    <p>The <code>print()</code> function will get to process something
 like: </p>
<pre><code>connection: Keep-Alive
content-type: text/plain; charset=utf-8
date: Sun, 24 Oct 2004 04:58:38 GMT
keep-alive: timeout=15, max=99
server: Apache/1.3.31 (Unix)
transfer-encoding: chunked</code></pre>
   </div>
   <h4 class="heading settled" data-level="4.6.6" id="response-body"><span class="secno">4.6.6. </span><span class="content">Response body</span><a class="self-link" href="#response-body"></a></h4>
   <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="response-mime-type">response MIME type</dfn> is the result of running these steps: </p>
   <ol>
    <li>
     <p>Let <var>mimeType</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-header-extract-mime-type" id="ref-for-concept-header-extract-mime-type">extracting a MIME type</a> from <a data-link-type="dfn" href="#response" id="ref-for-response①⑧">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-header-list" id="ref-for-concept-response-header-list④">header list</a>. </p>
    <li>
     <p>If <var>mimeType</var> is failure, then set <var>mimeType</var> to <code>text/xml</code>. </p>
    <li>
     <p>Return <var>mimeType</var>. </p>
   </ol>
   <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="override-mime-type">override MIME type</dfn> is initially null and can get a value
when <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-overridemimetype" id="ref-for-dom-xmlhttprequest-overridemimetype①">overrideMimeType()</a></code> is invoked. The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="final-mime-type">final MIME type</dfn> is the <a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type①">override MIME type</a> unless that is null in which case it is the <a data-link-type="dfn" href="#response-mime-type" id="ref-for-response-mime-type">response MIME type</a>. </p>
   <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="final-charset">final charset</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>Let <var>label</var> be null. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#response-mime-type" id="ref-for-response-mime-type①">response MIME type</a>’s <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parameters" id="ref-for-parameters③">parameters</a>["<code>charset</code>"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①">exists</a>, then set <var>label</var> to it. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type②">override MIME type</a>’s <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parameters" id="ref-for-parameters④">parameters</a>["<code>charset</code>"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists②">exists</a>, then set <var>label</var> to it. </p>
    <li>
     <p>If <var>label</var> is null, then return null. </p>
    <li>
     <p>Let <var>encoding</var> be the result of <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#concept-encoding-get" id="ref-for-concept-encoding-get">getting an encoding</a> from <var>label</var>. </p>
    <li>
     <p>If <var>encoding</var> is failure, then return null. </p>
    <li>
     <p>Return <var>encoding</var>. </p>
   </ol>
   <p class="note" role="note">The above steps intentionally do not use the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type">final MIME type</a> as it would yield
the wrong result. </p>
   <hr>
   <p>An <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest②①">XMLHttpRequest</a></code> object has an associated <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="response-object">response object</dfn> (an object, failure,
or null). Unless stated otherwise it is null. </p>
   <p>An <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="arraybuffer-response">arraybuffer response</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>Set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object①">response object</a> to a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-ArrayBuffer" id="ref-for-idl-ArrayBuffer">ArrayBuffer</a></code> object representing <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes③">received bytes</a>.
  If this throws an exception, then set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object②">response object</a> to failure and return null. </p>
     <p class="note" role="note">Allocating an <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-ArrayBuffer" id="ref-for-idl-ArrayBuffer①">ArrayBuffer</a></code> object is not guaranteed to succeed. <a data-link-type="biblio" href="#biblio-ecmascript">[ECMASCRIPT]</a> </p>
    <li>
     <p>Return <a data-link-type="dfn" href="#response-object" id="ref-for-response-object③">response object</a>. </p>
   </ol>
   <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="blob-response">blob response</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>Set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object④">response object</a> to a new <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob">Blob</a></code> object representing <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes④">received bytes</a> with <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-type" id="ref-for-dfn-type">type</a></code> set to the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type①">final MIME type</a>. </p>
    <li>
     <p>Return <a data-link-type="dfn" href="#response-object" id="ref-for-response-object⑤">response object</a>. </p>
   </ol>
   <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="document-response">document response</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#response" id="ref-for-response①⑨">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①③">body</a> is null, then return null. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type②">final MIME type</a> is not an <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#html-mime-type" id="ref-for-html-mime-type">HTML MIME type</a> or an <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#xml-mime-type" id="ref-for-xml-mime-type">XML MIME type</a>,
 then return null. </p>
    <li>
     <p>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype③">responseType</a></code> is the empty string and the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type③">final MIME type</a> is an <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#html-mime-type" id="ref-for-html-mime-type①">HTML MIME type</a>, then return null. </p>
     <p class="note" role="note">This is restricted to <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype④">responseType</a></code> being
  "<code>document</code>" in order to prevent breaking legacy
  content. </p>
    <li>
     <p>If the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type④">final MIME type</a> is an <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#html-mime-type" id="ref-for-html-mime-type②">HTML MIME type</a>, then: </p>
     <ol>
      <li>
       <p>Let <var>charset</var> be the <a data-link-type="dfn" href="#final-charset" id="ref-for-final-charset">final charset</a>. </p>
      <li>
       <p>If <var>charset</var> is null, <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/parsing.html#prescan-a-byte-stream-to-determine-its-encoding" id="ref-for-prescan-a-byte-stream-to-determine-its-encoding">prescan</a> the first 1024 bytes of <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes⑤">received bytes</a> and if
   that does not terminate unsuccessfully then let <var>charset</var> be
   the return value. </p>
      <li>
       <p>If <var>charset</var> is null, then set <var>charset</var> to <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8" id="ref-for-utf-8">UTF-8</a>. </p>
      <li>
       <p>Let <var>document</var> be a <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document" id="ref-for-concept-document">document</a> that
   represents the result parsing <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes⑥">received bytes</a> following the rules set
   forth in the HTML Standard for an HTML parser with scripting disabled and <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/parsing.html#a-known-definite-encoding" id="ref-for-a-known-definite-encoding">a known definite encoding</a> <var>charset</var>. <a data-link-type="biblio" href="#biblio-html">[HTML]</a> </p>
      <li>
       <p>Flag <var>document</var> as an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#html-document" id="ref-for-html-document①">HTML document</a>. </p>
     </ol>
    <li>
     <p>Otherwise, let <var>document</var> be a <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document" id="ref-for-concept-document①">document</a> that represents the result of running the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/xhtml.html#xml-parser" id="ref-for-xml-parser">XML parser</a> with <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/xhtml.html#xml-scripting-support-disabled" id="ref-for-xml-scripting-support-disabled">XML scripting support disabled</a> on <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes⑦">received bytes</a>. If that fails (unsupported character encoding,
  namespace well-formedness error, etc.), then return null. <a data-link-type="biblio" href="#biblio-html">[HTML]</a> </p>
     <p class="note" role="note">Resources referenced will not be loaded and no associated XSLT will be
  applied. </p>
    <li>
     <p>If <var>charset</var> is null, then set <var>charset</var> to <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8" id="ref-for-utf-8①">UTF-8</a>. </p>
    <li>
     <p>Set <var>document</var>’s <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document-encoding" id="ref-for-concept-document-encoding">encoding</a> to <var>charset</var>. </p>
    <li>
     <p>Set <var>document</var>’s <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document-content-type" id="ref-for-concept-document-content-type">content type</a> to the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type⑤">final MIME type</a>. </p>
    <li>
     <p>Set <var>document</var>’s <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document-url" id="ref-for-concept-document-url">URL</a> to <a data-link-type="dfn" href="#response" id="ref-for-response②⓪">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-url" id="ref-for-concept-response-url①">url</a>. </p>
    <li>
     <p>Set <var>document</var>’s <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-document-origin" id="ref-for-concept-document-origin">origin</a> to <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object④">context object</a>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object" id="ref-for-relevant-settings-object③">relevant settings object</a>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin" id="ref-for-concept-settings-object-origin">origin</a>. </p>
    <li>
     <p>Set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object⑥">response object</a> to <var>document</var> and return it. </p>
   </ol>
   <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="json-response">JSON response</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#response" id="ref-for-response②①">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①④">body</a> is null, then return null. </p>
    <li>
     <p>Let <var>jsonObject</var> be the result of running <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#parse-json-from-bytes" id="ref-for-parse-json-from-bytes">parse JSON from bytes</a> on <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes⑧">received bytes</a>. If that threw an exception, then return null. </p>
    <li>
     <p>Set <a data-link-type="dfn" href="#response-object" id="ref-for-response-object⑦">response object</a> to <var>jsonObject</var> and return it. </p>
   </ol>
   <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="text-response">text response</dfn> is the return value of these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#response" id="ref-for-response②②">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①⑤">body</a> is null, then return the
 empty string. </p>
    <li>
     <p>Let <var>charset</var> be the <a data-link-type="dfn" href="#final-charset" id="ref-for-final-charset①">final charset</a>. </p>
    <li>
     <p>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype⑤">responseType</a></code> is the empty string, <var>charset</var> is null, and the <a data-link-type="dfn" href="#final-mime-type" id="ref-for-final-mime-type⑥">final MIME type</a> is an <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#xml-mime-type" id="ref-for-xml-mime-type①">XML MIME type</a>, then use the rules set forth in the XML
  specifications to determine the encoding. Let <var>charset</var> be the determined encoding. <a data-link-type="biblio" href="#biblio-xml">[XML]</a> <a data-link-type="biblio" href="#biblio-xmlns">[XMLNS]</a> </p>
     <p class="note" role="note">This is restricted to <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype⑥">responseType</a></code> being
  the empty string to keep the non-legacy <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype⑦">responseType</a></code> value
  "<code>text</code>" simple. </p>
    <li>
     <p>If <var>charset</var> is null, then set <var>charset</var> to <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8" id="ref-for-utf-8②">UTF-8</a>. </p>
    <li>
     <p>Return the result of running <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#decode" id="ref-for-decode">decode</a> on <a data-link-type="dfn" href="#received-bytes" id="ref-for-received-bytes⑨">received bytes</a> using fallback
 encoding <var>charset</var>. </p>
   </ol>
   <p class="note" role="note">Authors are strongly encouraged to always encode their resources using <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8" id="ref-for-utf-8③">UTF-8</a>. </p>
   <h4 class="heading settled" data-level="4.6.7" id="the-overridemimetype()-method"><span class="secno">4.6.7. </span><span class="content">The <code>overrideMimeType()</code> method</span><a class="self-link" href="#the-overridemimetype()-method"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-overridemimetype" id="ref-for-dom-xmlhttprequest-overridemimetype②">overrideMimeType(<var>mime</var>)</a></code> 
    <dd>
     <p>Acts as if the `<code>Content-Type</code>` header value for <a data-link-type="dfn" href="#response" id="ref-for-response②③">response</a> is <var>mime</var>.
  (It does not actually change the header though.) </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①⓪">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⑥">DOMException</a></code> if <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②③">state</a> is <i>loading</i> or <i>done</i>. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="method" data-export id="dom-xmlhttprequest-overridemimetype"><code>overrideMimeType(<var>mime</var>)</code></dfn> method,
when invoked, must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②④">state</a> is <i>loading</i> or <i>done</i>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⑥">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①①">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⑦">DOMException</a></code>. </p>
    <li>
     <p>Set <a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type③">override MIME type</a> to the result of <a data-link-type="dfn" href="https://mimesniff.spec.whatwg.org/#parse-a-mime-type" id="ref-for-parse-a-mime-type">parsing</a> <var>mime</var>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type④">override MIME type</a> is failure, then set <a data-link-type="dfn" href="#override-mime-type" id="ref-for-override-mime-type⑤">override MIME type</a> to <code>application/octet-stream</code>. </p>
   </ol>
   <h4 class="heading settled" data-level="4.6.8" id="the-responsetype-attribute"><span class="secno">4.6.8. </span><span class="content">The <code>responseType</code> attribute</span><a class="self-link" href="#the-responsetype-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype⑧">responseType</a> [ = <var>value</var> ]</code> 
    <dd>
     <p>Returns the response type. </p>
     <p>Can be set to change the response type. Values are:
  the empty string (default),
  "<code>arraybuffer</code>",
  "<code>blob</code>",
  "<code>document</code>",
  "<code>json</code>", and
  "<code>text</code>". </p>
     <p>When set: setting to "<code>document</code>" is ignored if <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object⑤">current global object</a> is <em>not</em> a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window⑤">Window</a></code> object. </p>
     <p>When set: throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①②">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⑧">DOMException</a></code> if <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⑤">state</a> is <i>loading</i> or <i>done</i>. </p>
     <p>When set: throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror⑤">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②⑨">DOMException</a></code> if the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①⑥">synchronous flag</a> is set and <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object⑥">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window⑥">Window</a></code> object. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-responsetype"><code>responseType</code></dfn> attribute must return its value. Initially its value must be the empty
string. </p>
   <p>Setting the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype⑨">responseType</a></code> attribute must run these steps: </p>
   <ol>
    <li>
     <p>If <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object⑦">current global object</a> is <em>not</em> a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window⑦">Window</a></code> object and the given value is
 "<code>document</code>", terminate these steps. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⑥">state</a> is <i>loading</i> or <i>done</i>, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⑦">throw</a> an
 "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①③">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③⓪">DOMException</a></code>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object" id="ref-for-current-global-object⑧">current global object</a> is a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/window-object.html#window" id="ref-for-window⑧">Window</a></code> object and the <a data-link-type="dfn" href="#synchronous-flag" id="ref-for-synchronous-flag①⑦">synchronous flag</a> is
 set, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⑧">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidaccesserror" id="ref-for-invalidaccesserror⑥">InvalidAccessError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③①">DOMException</a></code>. </p>
    <li>
     <p>Set the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⓪">responseType</a></code> attribute’s value to the given value. </p>
   </ol>
   <h4 class="heading settled" data-level="4.6.9" id="the-response-attribute"><span class="secno">4.6.9. </span><span class="content">The <code>response</code> attribute</span><a class="self-link" href="#the-response-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-response" id="ref-for-dom-xmlhttprequest-response①">response</a></code> 
    <dd>
     <p>Returns the <a data-link-type="dfn" href="#response" id="ref-for-response②④">response</a>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body" id="ref-for-concept-response-body①⑥">body</a>. </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-response"><code>response</code></dfn> attribute must return the result of running these
steps: </p>
   <dl class="switch">
    <dt>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①①">responseType</a></code> is the empty string or "<code>text</code>" 
    <dd>
     <ol>
      <li>
       <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⑦">state</a> is not <i>loading</i> or <i>done</i>, return the empty string. </p>
      <li>
       <p>Return the <a data-link-type="dfn" href="#text-response" id="ref-for-text-response">text response</a>. </p>
     </ol>
    <dt>Otherwise 
    <dd>
     <ol>
      <li>
       <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⑧">state</a> is not <i>done</i>, return null. </p>
      <li>
       <p>If <a data-link-type="dfn" href="#response-object" id="ref-for-response-object⑧">response object</a> is failure, then return null. </p>
      <li>
       <p>If <a data-link-type="dfn" href="#response-object" id="ref-for-response-object⑨">response object</a> is non-null, then return it. </p>
      <li>
       <dl class="switch">
        <dt>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①②">responseType</a></code> is
     "<code>arraybuffer</code>" 
        <dd>
         <p>Return the <a data-link-type="dfn" href="#arraybuffer-response" id="ref-for-arraybuffer-response">arraybuffer response</a>. </p>
        <dt>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①③">responseType</a></code> is
     "<code>blob</code>" 
        <dd>
         <p>Return the <a data-link-type="dfn" href="#blob-response" id="ref-for-blob-response">blob response</a>. </p>
        <dt>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①④">responseType</a></code> is
     "<code>document</code>" 
        <dd>
         <p>Return the <a data-link-type="dfn" href="#document-response" id="ref-for-document-response">document response</a>. </p>
        <dt>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⑤">responseType</a></code> is
     "<code>json</code>" 
        <dd>
         <p>Return the <a data-link-type="dfn" href="#json-response" id="ref-for-json-response">JSON response</a>. </p>
       </dl>
     </ol>
   </dl>
   <h4 class="heading settled" data-level="4.6.10" id="the-responsetext-attribute"><span class="secno">4.6.10. </span><span class="content">The <code>responseText</code> attribute</span><a class="self-link" href="#the-responsetext-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-responsetext" id="ref-for-dom-xmlhttprequest-responsetext①">responseText</a></code> 
    <dd>
     <p>Returns the <a data-link-type="dfn" href="#text-response" id="ref-for-text-response①">text response</a>. </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①④">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③②">DOMException</a></code> if <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⑥">responseType</a></code> is not the empty string or "<code>text</code>". </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-responsetext"><code>responseText</code></dfn> attribute must return the result of running these
steps: </p>
   <ol>
    <li>
     <p>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⑦">responseType</a></code> is not the empty string or "<code>text</code>", then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw①⑨">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①⑤">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③③">DOMException</a></code>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state②⑨">state</a> is not <i>loading</i> or <i>done</i>, then return the empty string. </p>
    <li>
     <p>Return the <a data-link-type="dfn" href="#text-response" id="ref-for-text-response②">text response</a>. </p>
   </ol>
   <h4 class="heading settled" data-level="4.6.11" id="the-responsexml-attribute"><span class="secno">4.6.11. </span><span class="content">The <code>responseXML</code> attribute</span><a class="self-link" href="#the-responsexml-attribute"></a></h4>
   <dl class="domintro">
    <dt><code><var>client</var> . <a class="idl-code" data-link-type="attribute" href="#dom-xmlhttprequest-responsexml" id="ref-for-dom-xmlhttprequest-responsexml①">responseXML</a></code> 
    <dd>
     <p>Returns the <a data-link-type="dfn" href="#document-response" id="ref-for-document-response①">document response</a>. </p>
     <p>Throws an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①⑥">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③④">DOMException</a></code> if <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⑧">responseType</a></code> is not the empty string or "<code>document</code>". </p>
   </dl>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="attribute" data-export id="dom-xmlhttprequest-responsexml"><code>responseXML</code></dfn> attribute must return the result of running these steps: </p>
   <ol>
    <li>
     <p>If <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype①⑨">responseType</a></code> is not the empty string or "<code>document</code>", then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw②⓪">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①⑦">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③⑤">DOMException</a></code>. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#concept-xmlhttprequest-state" id="ref-for-concept-xmlhttprequest-state③⓪">state</a> is not <i>done</i>, then return null. </p>
    <li>
     <p>Assert: <a data-link-type="dfn" href="#response-object" id="ref-for-response-object①⓪">response object</a> is not failure. </p>
    <li>
     <p>If <a data-link-type="dfn" href="#response-object" id="ref-for-response-object①①">response object</a> is non-null, then return it. </p>
    <li>
     <p>Return the <a data-link-type="dfn" href="#document-response" id="ref-for-document-response②">document response</a>. </p>
   </ol>
   <h3 class="heading settled" data-level="4.7" id="events"><span class="secno">4.7. </span><span class="content">Events summary</span><a class="self-link" href="#events"></a></h3>
   <p><em>This section is non-normative.</em> </p>
   <p>The following events are dispatched on <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest②②">XMLHttpRequest</a></code> or <code class="idl"><a data-link-type="idl" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①④">XMLHttpRequestUpload</a></code> objects: </p>
   <table>
    <thead>
     <tr>
      <th>Event name 
      <th>Interface 
      <th>Dispatched when… 
    <tbody>
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-readystatechange"><code>readystatechange</code></dfn> 
      <td><code>Event</code> 
      <td>The <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-readystate" id="ref-for-dom-xmlhttprequest-readystate②">readyState</a></code> attribute changes
   value, except when it changes to <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-unsent" id="ref-for-dom-xmlhttprequest-unsent①">UNSENT</a>. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-loadstart"><code>loadstart</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent">ProgressEvent</a></code> 
      <td>The fetch initiates. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-progress"><code>progress</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①">ProgressEvent</a></code> 
      <td>Transmitting data. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-abort"><code>abort</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent②">ProgressEvent</a></code> 
      <td>When the fetch has been aborted. For instance, by invoking the <code class="idl"><a data-link-type="idl" href="#dom-xmlhttprequest-abort" id="ref-for-dom-xmlhttprequest-abort②">abort()</a></code> method. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-error"><code>error</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent③">ProgressEvent</a></code> 
      <td>The fetch failed. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-load"><code>load</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent④">ProgressEvent</a></code> 
      <td>The fetch succeeded. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-timeout"><code>timeout</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent⑤">ProgressEvent</a></code> 
      <td>The author specified timeout has passed before the fetch completed. 
     <tr>
      <td><dfn class="dfn-paneled idl-code" data-dfn-for="XMLHttpRequest" data-dfn-type="event" data-export id="event-xhr-loadend"><code>loadend</code></dfn> 
      <td><code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent⑥">ProgressEvent</a></code> 
      <td>The fetch completed (success or failure). 
   </table>
   <h3 class="heading settled" data-level="4.8" id="feature-policy-integration"><span class="secno">4.8. </span><span class="content">Feature Policy integration</span><a class="self-link" href="#feature-policy-integration"></a></h3>
   <p>This specification defines a <a data-link-type="dfn" href="https://wicg.github.io/feature-policy/#policy-controlled-feature" id="ref-for-policy-controlled-feature">policy-controlled feature</a> identified by the string
"<code><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="sync-xhr">sync-xhr</dfn></code>". Its <a data-link-type="dfn" href="https://wicg.github.io/feature-policy/#default-allowlist" id="ref-for-default-allowlist">default allowlist</a> is <code>*</code>. </p>
   <h2 class="heading settled" data-level="5" id="interface-formdata"><span class="secno">5. </span><span class="content">Interface <code class="idl"><a data-link-type="idl" href="#formdata" id="ref-for-formdata">FormData</a></code></span><a class="self-link" href="#interface-formdata"></a></h2>
<pre class="idl highlight def"><c- b>typedef</c-> (<a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file"><c- n>File</c-></a> <c- b>or</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑦"><c- b>USVString</c-></a>) <dfn class="dfn-paneled idl-code" data-dfn-type="typedef" data-export id="formdataentryvalue"><code><c- g>FormDataEntryValue</c-></code></dfn>;

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed④"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->)]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="formdata"><code><c- g>FormData</c-></code></dfn> {
  <a class="idl-code" data-link-type="constructor" href="#dom-formdata" id="ref-for-dom-formdata"><c- g>constructor</c-></a>(<c- b>optional</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/forms.html#htmlformelement" id="ref-for-htmlformelement"><c- n>HTMLFormElement</c-></a> <dfn class="idl-code" data-dfn-for="FormData/FormData(form), FormData/constructor(form), FormData/FormData(), FormData/constructor()" data-dfn-type="argument" data-export id="dom-formdata-formdata-form-form"><code><c- g>form</c-></code><a class="self-link" href="#dom-formdata-formdata-form-form"></a></dfn>);

  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-append" id="ref-for-dom-formdata-append"><c- g>append</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑧"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/append(name, value)" data-dfn-type="argument" data-export id="dom-formdata-append-name-value-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-append-name-value-name"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑨"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/append(name, value)" data-dfn-type="argument" data-export id="dom-formdata-append-name-value-value"><code><c- g>value</c-></code><a class="self-link" href="#dom-formdata-append-name-value-value"></a></dfn>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-append-blob" id="ref-for-dom-formdata-append-blob"><c- g>append</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⓪"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/append(name, blobValue, filename), FormData/append(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-append-name-blobvalue-filename-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-append-name-blobvalue-filename-name"></a></dfn>, <a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob①"><c- n>Blob</c-></a> <dfn class="idl-code" data-dfn-for="FormData/append(name, blobValue, filename), FormData/append(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-append-name-blobvalue-filename-blobvalue"><code><c- g>blobValue</c-></code><a class="self-link" href="#dom-formdata-append-name-blobvalue-filename-blobvalue"></a></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①①"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/append(name, blobValue, filename), FormData/append(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-append-name-blobvalue-filename-filename"><code><c- g>filename</c-></code><a class="self-link" href="#dom-formdata-append-name-blobvalue-filename-filename"></a></dfn>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-delete" id="ref-for-dom-formdata-delete"><c- g>delete</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①②"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/delete(name)" data-dfn-type="argument" data-export id="dom-formdata-delete-name-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-delete-name-name"></a></dfn>);
  <a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue"><c- n>FormDataEntryValue</c-></a>? <a class="idl-code" data-link-type="method" href="#dom-formdata-get" id="ref-for-dom-formdata-get"><c- g>get</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①③"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/get(name)" data-dfn-type="argument" data-export id="dom-formdata-get-name-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-get-name-name"></a></dfn>);
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue①"><c- n>FormDataEntryValue</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-formdata-getall" id="ref-for-dom-formdata-getall"><c- g>getAll</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①④"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/getAll(name)" data-dfn-type="argument" data-export id="dom-formdata-getall-name-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-getall-name-name"></a></dfn>);
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-formdata-has" id="ref-for-dom-formdata-has"><c- g>has</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑤"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/has(name)" data-dfn-type="argument" data-export id="dom-formdata-has-name-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-has-name-name"></a></dfn>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-set" id="ref-for-dom-formdata-set"><c- g>set</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑥"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/set(name, value)" data-dfn-type="argument" data-export id="dom-formdata-set-name-value-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-set-name-value-name"></a></dfn>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑦"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/set(name, value)" data-dfn-type="argument" data-export id="dom-formdata-set-name-value-value"><code><c- g>value</c-></code><a class="self-link" href="#dom-formdata-set-name-value-value"></a></dfn>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-set-blob" id="ref-for-dom-formdata-set-blob"><c- g>set</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑧"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/set(name, blobValue, filename), FormData/set(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-set-name-blobvalue-filename-name"><code><c- g>name</c-></code><a class="self-link" href="#dom-formdata-set-name-blobvalue-filename-name"></a></dfn>, <a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob②"><c- n>Blob</c-></a> <dfn class="idl-code" data-dfn-for="FormData/set(name, blobValue, filename), FormData/set(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-set-name-blobvalue-filename-blobvalue"><code><c- g>blobValue</c-></code><a class="self-link" href="#dom-formdata-set-name-blobvalue-filename-blobvalue"></a></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑨"><c- b>USVString</c-></a> <dfn class="idl-code" data-dfn-for="FormData/set(name, blobValue, filename), FormData/set(name, blobValue)" data-dfn-type="argument" data-export id="dom-formdata-set-name-blobvalue-filename-filename"><code><c- g>filename</c-></code><a class="self-link" href="#dom-formdata-set-name-blobvalue-filename-filename"></a></dfn>);
  <c- b>iterable</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString②⓪"><c- b>USVString</c-></a>, <a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue②"><c- n>FormDataEntryValue</c-></a>>;
};
</pre>
   <p>Each <code class="idl"><a data-link-type="idl" href="#formdata" id="ref-for-formdata①">FormData</a></code> object has an associated <dfn class="dfn-paneled" data-dfn-for="FormData" data-dfn-type="dfn" data-export id="concept-formdata-entry-list">entry list</dfn> (a <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list" id="ref-for-list">list</a> of <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry">entries</a>). It is initially the empty list. </p>
   <p>An <dfn class="dfn-paneled" data-dfn-for="FormData" data-dfn-type="dfn" data-export data-lt="entry|entries" id="concept-formdata-entry">entry</dfn> consists of a <dfn class="dfn-paneled" data-dfn-for="FormData/entry" data-dfn-type="dfn" data-export id="concept-formdata-entry-name">name</dfn> and a <dfn class="dfn-paneled" data-dfn-for="FormData/entry" data-dfn-type="dfn" data-export id="concept-formdata-entry-value">value</dfn>. </p>
   <p>For the purposes of interaction with other algorithms, an <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry①">entry</a>’s filename is
the empty string if <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value">value</a> is not a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file①">File</a></code> object, and otherwise its
filename is the value of <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry②">entry</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value①">value</a>’s <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-name" id="ref-for-dfn-name">name</a></code> attribute. </p>
   <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-an-entry">create an entry</dfn> for <var>name</var>, <var>value</var>, and optionally a <var>filename</var>, run these steps: </p>
   <ol>
    <li>
     <p>Let <var>entry</var> be a new <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry③">entry</a>. </p>
    <li>
     <p>Set <var>entry</var>’s <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name">name</a> to <var>name</var>. </p>
    <li>
     <p>If <var>value</var> is a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob③">Blob</a></code> object and not a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file②">File</a></code> object, then set <var>value</var> to a new <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file③">File</a></code> object, representing the same bytes, whose <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-name" id="ref-for-dfn-name①">name</a></code> attribute value is "<code>blob</code>". </p>
    <li>
     <p>If <var>value</var> is (now) a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file④">File</a></code> object and <var>filename</var> is given, then set <var>value</var> to a new <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file⑤">File</a></code> object, representing the same bytes, whose <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-name" id="ref-for-dfn-name②">name</a></code> attribute value is <var>filename</var>. </p>
    <li>
     <p>Set <var>entry</var>’s <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value②">value</a> to <var>value</var>. </p>
    <li>
     <p>Return <var>entry</var>. </p>
   </ol>
   <hr>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="constructor" data-export data-lt="FormData(form)|constructor(form)|FormData()|constructor()" id="dom-formdata"><code>FormData(<var>form</var>)</code></dfn> constructor must run these steps: </p>
   <ol>
    <li>
     <p>Let <var>fd</var> be a new <code class="idl"><a data-link-type="idl" href="#formdata" id="ref-for-formdata②">FormData</a></code> object. </p>
    <li>
     <p>If <var>form</var> is given, then: </p>
     <ol>
      <li>
       <p>Let <var>list</var> be the result of <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-the-form-data-set" id="ref-for-constructing-the-form-data-set">constructing the entry list</a> for <var>form</var>. </p>
      <li>
       <p>If <var>list</var> is null, then <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-throw" id="ref-for-dfn-throw②①">throw</a> an "<code class="idl"><a class="idl-code" data-link-type="exception" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①⑧">InvalidStateError</a></code>" <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③⑥">DOMException</a></code>. </p>
      <li>
       <p>Set <var>fd</var>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list">entry list</a> to <var>list</var>. </p>
     </ol>
    <li>
     <p>Return <var>fd</var>. </p>
   </ol>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-append"><code>append(<var>name</var>, <var>value</var>)</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export data-lt="append(name, blobValue, filename)|append(name, blobValue)" id="dom-formdata-append-blob"><code>append(<var>name</var>, <var>blobValue</var>, <var>filename</var>)</code></dfn> methods, when invoked, must run these steps: </p>
   <ol>
    <li>
     <p>Let <var>value</var> be <var>value</var> if given, and <var>blobValue</var> otherwise. </p>
    <li>
     <p>Let <var>entry</var> be the result of <a data-link-type="dfn" href="#create-an-entry" id="ref-for-create-an-entry">creating an entry</a> with <var>name</var>, <var>value</var>, and <var>filename</var> if given. </p>
    <li>
     <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append">Append</a> <var>entry</var> to the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object⑤">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list①">entry list</a>. </p>
   </ol>
   <p class="note" role="note">The reason there is an argument named <var>value</var> as well as <var>blobValue</var> is due to a limitation of the editing software used to write the XMLHttpRequest Standard. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-delete"><code>delete(<var>name</var>)</code></dfn> method, when invoked, must <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-remove" id="ref-for-list-remove">remove</a> all <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry④">entries</a> whose <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name①">name</a> is <var>name</var> from the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object⑥">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list②">entry list</a>. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-get"><code>get(<var>name</var>)</code></dfn> method,
when invoked, must return the <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value③">value</a> of the first <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry⑤">entry</a> whose <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name②">name</a> is <var>name</var> from the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object⑦">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list③">entry list</a>, and null otherwise. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-getall"><code>getAll(<var>name</var>)</code></dfn> method, when invoked, must return the <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value④">values</a> of all <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry⑥">entries</a> whose <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name③">name</a> is <var>name</var>, in order, from
the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object⑧">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list④">entry list</a>, and the empty list otherwise. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-has"><code>has(<var>name</var>)</code></dfn> method,
when invoked, must return true if there is an <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry⑦">entry</a> whose <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name④">name</a> is <var>name</var> in the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object⑨">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list⑤">entry list</a>, and false otherwise. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export id="dom-formdata-set"><code>set(<var>name</var>, <var>value</var>)</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="FormData" data-dfn-type="method" data-export data-lt="set(name, blobValue, filename)|set(name, blobValue)" id="dom-formdata-set-blob"><code>set(<var>name</var>, <var>blobValue</var>, <var>filename</var>)</code></dfn> methods, when invoked, must run these steps: </p>
   <ol>
    <li>
     <p>Let <var>value</var> be <var>value</var> if given, and <var>blobValue</var> otherwise. </p>
    <li>
     <p>Let <var>entry</var> be the result of <a data-link-type="dfn" href="#create-an-entry" id="ref-for-create-an-entry①">creating an entry</a> with <var>name</var>, <var>value</var>, and <var>filename</var> if given. </p>
    <li>
     <p>If there are any <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry⑧">entries</a> in the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object①⓪">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list⑥">entry list</a> whose <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name⑤">name</a> is <var>name</var>, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-replace" id="ref-for-list-replace">replace</a> the first such <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry⑨">entry</a> with <var>entry</var> and <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-remove" id="ref-for-list-remove①">remove</a> the others. </p>
    <li>
     <p>Otherwise, <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①">append</a> <var>entry</var> to the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object①①">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list⑦">entry list</a>. </p>
   </ol>
   <p class="note" role="note">The reason there is an argument named <var>value</var> as well as <var>blobValue</var> is due to a limitation of the editing software used to write the XMLHttpRequest Standard. </p>
   <p>The <a data-link-type="dfn" href="https://heycam.github.io/webidl/#dfn-value-pairs-to-iterate-over" id="ref-for-dfn-value-pairs-to-iterate-over">value pairs to iterate over</a> are the <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#context-object" id="ref-for-context-object①②">context object</a>’s <a data-link-type="dfn" href="#concept-formdata-entry-list" id="ref-for-concept-formdata-entry-list⑧">entry list</a>’s <a data-link-type="dfn" href="#concept-formdata-entry" id="ref-for-concept-formdata-entry①⓪">entries</a> with the key being the <a data-link-type="dfn" href="#concept-formdata-entry-name" id="ref-for-concept-formdata-entry-name⑥">name</a> and the value being the <a data-link-type="dfn" href="#concept-formdata-entry-value" id="ref-for-concept-formdata-entry-value⑤">value</a>. </p>
   <h2 class="heading settled" data-level="6" id="interface-progressevent"><span class="secno">6. </span><span class="content">Interface <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent⑦">ProgressEvent</a></code></span><a class="self-link" href="#interface-progressevent"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed⑤"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="progressevent"><code><c- g>ProgressEvent</c-></code></dfn> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#event" id="ref-for-event"><c- n>Event</c-></a> {
  <dfn class="idl-code" data-dfn-for="ProgressEvent" data-dfn-type="constructor" data-export data-lt="ProgressEvent(type, eventInitDict)|constructor(type, eventInitDict)|ProgressEvent(type)|constructor(type)" id="dom-progressevent-progressevent"><code><c- g>constructor</c-></code><a class="self-link" href="#dom-progressevent-progressevent"></a></dfn>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①"><c- b>DOMString</c-></a> <dfn class="idl-code" data-dfn-for="ProgressEvent/ProgressEvent(type, eventInitDict), ProgressEvent/constructor(type, eventInitDict), ProgressEvent/ProgressEvent(type), ProgressEvent/constructor(type)" data-dfn-type="argument" data-export id="dom-progressevent-progressevent-type-eventinitdict-type"><code><c- g>type</c-></code><a class="self-link" href="#dom-progressevent-progressevent-type-eventinitdict-type"></a></dfn>, <c- b>optional</c-> <a class="n" data-link-type="idl-name" href="#progresseventinit" id="ref-for-progresseventinit"><c- n>ProgressEventInit</c-></a> <dfn class="idl-code" data-dfn-for="ProgressEvent/ProgressEvent(type, eventInitDict), ProgressEvent/constructor(type, eventInitDict), ProgressEvent/ProgressEvent(type), ProgressEvent/constructor(type)" data-dfn-type="argument" data-export id="dom-progressevent-progressevent-type-eventinitdict-eventinitdict"><code><c- g>eventInitDict</c-></code><a class="self-link" href="#dom-progressevent-progressevent-type-eventinitdict-eventinitdict"></a></dfn> = {});

  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="boolean" href="#dom-progressevent-lengthcomputable" id="ref-for-dom-progressevent-lengthcomputable"><c- g>lengthComputable</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned long long" href="#dom-progressevent-loaded" id="ref-for-dom-progressevent-loaded"><c- g>loaded</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long①"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned long long" href="#dom-progressevent-total" id="ref-for-dom-progressevent-total"><c- g>total</c-></a>;
};

<c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="progresseventinit"><code><c- g>ProgressEventInit</c-></code></dfn> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#dictdef-eventinit" id="ref-for-dictdef-eventinit"><c- n>EventInit</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean④"><c- b>boolean</c-></a> <dfn class="idl-code" data-default="false" data-dfn-for="ProgressEventInit" data-dfn-type="dict-member" data-export data-type="boolean " id="dom-progresseventinit-lengthcomputable"><code><c- g>lengthComputable</c-></code><a class="self-link" href="#dom-progresseventinit-lengthcomputable"></a></dfn> = <c- b>false</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long②"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <dfn class="idl-code" data-default="0" data-dfn-for="ProgressEventInit" data-dfn-type="dict-member" data-export data-type="unsigned long long " id="dom-progresseventinit-loaded"><code><c- g>loaded</c-></code><a class="self-link" href="#dom-progresseventinit-loaded"></a></dfn> = 0;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long③"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <dfn class="idl-code" data-default="0" data-dfn-for="ProgressEventInit" data-dfn-type="dict-member" data-export data-type="unsigned long long " id="dom-progresseventinit-total"><code><c- g>total</c-></code><a class="self-link" href="#dom-progresseventinit-total"></a></dfn> = 0;
};
</pre>
   <p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event" id="ref-for-concept-event">Events</a> using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent⑧">ProgressEvent</a></code> interface indicate some kind of progression. </p>
   <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="ProgressEvent" data-dfn-type="attribute" data-export id="dom-progressevent-lengthcomputable"><code>lengthComputable</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="ProgressEvent" data-dfn-type="attribute" data-export id="dom-progressevent-loaded"><code>loaded</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="ProgressEvent" data-dfn-type="attribute" data-export id="dom-progressevent-total"><code>total</code></dfn> attributes must return the value they were initialized to. </p>
   <h3 class="heading settled" data-level="6.1" id="firing-events-using-the-progressevent-interface"><span class="secno">6.1. </span><span class="content">Firing events using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent⑨">ProgressEvent</a></code> interface</span><a class="self-link" href="#firing-events-using-the-progressevent-interface"></a></h3>
   <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="concept-event-fire-progress">fire a progress event</dfn> named <var>e</var> at <var>target</var>, given <var>transmitted</var> and <var>length</var>, means to <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire⑤">fire an event</a> named <var>e</var> at <var>target</var>, using <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①⓪">ProgressEvent</a></code>, with the <code class="idl"><a data-link-type="idl" href="#dom-progressevent-loaded" id="ref-for-dom-progressevent-loaded①">loaded</a></code> attribute initialized to <var>transmitted</var>, and if <var>length</var> is not 0, with the <code class="idl"><a data-link-type="idl" href="#dom-progressevent-lengthcomputable" id="ref-for-dom-progressevent-lengthcomputable①">lengthComputable</a></code> attribute initialized to true and the <code class="idl"><a data-link-type="idl" href="#dom-progressevent-total" id="ref-for-dom-progressevent-total①">total</a></code> attribute initialized to <var>length</var>. </p>
   <h3 class="heading settled" data-level="6.2" id="suggested-names-for-events-using-the-progressevent-interface"><span class="secno">6.2. </span><span class="content">Suggested names for events using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①①">ProgressEvent</a></code> interface</span><a class="self-link" href="#suggested-names-for-events-using-the-progressevent-interface"></a></h3>
   <p><em>This section is non-normative.</em> </p>
   <p>The suggested <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#dom-event-type" id="ref-for-dom-event-type">type</a></code> attribute values for use with <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event" id="ref-for-concept-event①">events</a> using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①②">ProgressEvent</a></code> interface are summarized in the table below.
Specification editors are free to tune the details to their specific
scenarios, though are strongly encouraged to discuss their usage with the
WHATWG community to ensure input from people familiar with the subject. </p>
   <table>
    <tbody>
     <tr>
      <th><code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#dom-event-type" id="ref-for-dom-event-type①">type</a></code> attribute value 
      <th>Description 
      <th>Times 
      <th>When 
     <tr>
      <th><code>loadstart</code> 
      <td>Progress has begun. 
      <td>Once. 
      <td>First. 
     <tr>
      <th><a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress⑥"><code>progress</code></a> 
      <td>In progress. 
      <td>Once or more. 
      <td>After <code>loadstart</code> has been <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-dispatch" id="ref-for-concept-event-dispatch①">dispatched</a>. 
     <tr>
      <th><code>error</code> 
      <td>Progression failed. 
      <td rowspan="4">Zero or once (mutually exclusive). 
      <td rowspan="4">After the last <a class="idl-code" data-link-type="event" href="#event-xhr-progress" id="ref-for-event-xhr-progress⑦"><code>progress</code></a> has
    been <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-dispatch" id="ref-for-concept-event-dispatch②">dispatched</a>. 
     <tr>
      <th><code>abort</code> 
      <td>Progression is terminated. 
     <tr>
      <th><code>timeout</code> 
      <td>Progression is terminated due to preset time expiring. 
     <tr>
      <th><code>load</code> 
      <td>Progression is successful. 
     <tr>
      <th><code>loadend</code> 
      <td>Progress has stopped. 
      <td>Once. 
      <td>After one of <code>error</code>, <code>abort</code>, <code>timeout</code> or <code>load</code> has been <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-dispatch" id="ref-for-concept-event-dispatch③">dispatched</a>. 
   </table>
   <p>The <code>error</code>, <code>abort</code>, <code>timeout</code>, and <code>load</code> event types are mutually exclusive. </p>
   <p>Throughout the web platform the <code>error</code>, <code>abort</code>, <code>timeout</code> and <code>load</code> event types have
their <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#dom-event-bubbles" id="ref-for-dom-event-bubbles">bubbles</a></code> and <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#dom-event-cancelable" id="ref-for-dom-event-cancelable">cancelable</a></code> attributes initialized to false, so it is suggested that for consistency all <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event" id="ref-for-concept-event②">events</a> using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①③">ProgressEvent</a></code> interface do the same. </p>
   <h3 class="heading settled" data-level="6.3" id="security-considerations"><span class="secno">6.3. </span><span class="content">Security considerations</span><a class="self-link" href="#security-considerations"></a></h3>
   <p>For cross-origin requests some kind of opt-in, e.g. the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#cors-protocol" id="ref-for-cors-protocol">CORS protocol</a> defined in the Fetch Standard, has to be
used before <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event" id="ref-for-concept-event③">events</a> using the <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①④">ProgressEvent</a></code> interface are <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-dispatch" id="ref-for-concept-event-dispatch④">dispatched</a> as information (e.g. size) would be revealed that cannot be obtained
otherwise. <a data-link-type="biblio" href="#biblio-fetch">[FETCH]</a> </p>
   <h3 class="heading settled" data-level="6.4" id="example"><span class="secno">6.4. </span><span class="content">Example</span><a class="self-link" href="#example"></a></h3>
   <div class="example" id="example-progress-events">
    <a class="self-link" href="#example-progress-events"></a> 
    <p>In this example <code class="idl"><a data-link-type="idl" href="#xmlhttprequest" id="ref-for-xmlhttprequest②③">XMLHttpRequest</a></code>, combined with concepts
 defined in the sections before, and the HTML <code><a data-link-type="element" href="https://html.spec.whatwg.org/multipage/form-elements.html#the-progress-element" id="ref-for-the-progress-element">progress</a></code> element are used together to
 display the process of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch" id="ref-for-concept-fetch①⓪">fetching</a> a resource. </p>
<pre><code class="lang-html highlight"><c- cp>&lt;!DOCTYPE html></c->
<c- p>&lt;</c-><c- f>title</c-><c- p>></c->Waiting for Magical Unicorns<c- p>&lt;/</c-><c- f>title</c-><c- p>></c->
<c- p>&lt;</c-><c- f>progress</c-> <c- e>id</c-><c- o>=</c-><c- s>p</c-><c- p>>&lt;/</c-><c- f>progress</c-><c- p>></c->
<c- p>&lt;</c-><c- f>script</c-><c- p>></c->
  <c- a>var</c-> progressBar <c- o>=</c-> document<c- p>.</c->getElementById<c- p>(</c-><c- u>"p"</c-><c- p>),</c->
      client <c- o>=</c-> <c- k>new</c-> XMLHttpRequest<c- p>()</c->
  client<c- p>.</c->open<c- p>(</c-><c- u>"GET"</c-><c- p>,</c-> <c- u>"magical-unicorns"</c-><c- p>)</c->
  client<c- p>.</c->onprogress <c- o>=</c-> <c- a>function</c-><c- p>(</c->pe<c- p>)</c-> <c- p>{</c->
    <c- k>if</c-><c- p>(</c->pe<c- p>.</c->lengthComputable<c- p>)</c-> <c- p>{</c->
      progressBar<c- p>.</c->max <c- o>=</c-> pe<c- p>.</c->total
      progressBar<c- p>.</c->value <c- o>=</c-> pe<c- p>.</c->loaded
    <c- p>}</c->
  <c- p>}</c->
  client<c- p>.</c->onloadend <c- o>=</c-> <c- a>function</c-><c- p>(</c->pe<c- p>)</c-> <c- p>{</c->
    progressBar<c- p>.</c->value <c- o>=</c-> pe<c- p>.</c->loaded
  <c- p>}</c->
  client<c- p>.</c->send<c- p>()</c->
<c- p>&lt;/</c-><c- f>script</c-><c- p>></c-></code></pre>
    <p>Fully working code would of course be more elaborate and deal with more
 scenarios, such as network errors or the end user terminating the request. </p>
   </div>
   <h2 class="no-num heading settled" id="acknowledgments"><span class="content">Acknowledgments</span><a class="self-link" href="#acknowledgments"></a></h2>
   <p>Thanks to
Addison Phillips,
Adrian Bateman,
Ahmed Kamel,
Alan Thomas,
Alex Hopmann,
Alex Vincent,
Alexey Proskuryakov,
Ali Alabbas,
Andrea Marchesini,
Asbjørn Ulsberg,
Bertrand Guay-Paquet,
Björn Höhrmann,
Boris Zbarsky,
Caitlin Potter,
Cameron McCormack,
白丞祐 (Cheng-You Bai),
Chris Marrin,
Christophe Jolif,
Charles McCathieNevile,
Dan Winship,
David Andersson,
David Flanagan,
David Håsäther,
David Levin,
Dean Jackson,
Denis Sureau,
Domenic Denicola,
Dominik Röttsches,
Doug Schepers,
Douglas Livingstone,
Elliott Sprehn,
Elliotte Harold,
Eric Lawrence,
Eric Uhrhane,
Erik Arvidsson,
Erik Dahlström,
Feras Moussa,
Gideon Cohn,
Glenn Adams,
Gorm Haug Eriksen,
Håkon Wium Lie,
Hallvord R. M. Steen,
Henri Sivonen,
Hiroshige Hayashizaki,
Huub Schaeks,
Ian Clelland,
Ian Davis,
Ian Hickson,
Ivan Herman,
Jake Archibald,
Jared Jacobs,
Jarred Nicholls,
Jeff Walden,
Jens Lindström,
Jim Deegan,
Jim Ley,
Joe Farro,
Jonas Sicking,
Julian Reschke,
송정기 (Jungkee Song),
呂康豪 (Kang-Hao Lu),
Karl Dubost,
Keith Yeung,
田村健人 (Kent TAMURA),
Lachlan Hunt,
Maciej Stachowiak,
Magnus Kristiansen,
Manish Goregaokar,
Marc Hadley,
Marcos Caceres,
Mark Baker,
Mark Birbeck,
Mark Nottingham,
Mark S. Miller,
Martin Hassman,
Mike Pennisi,
Mohamed Zergaoui,
Ms2ger,
Odin Hørthe Omdal,
Olli Pettay,
Pawel Glowacki,
Peter Michaux,
Philip Jägenstedt,
Philip Taylor,
Robin Berjon,
Rune <span title="Fabulous">F.</span> Halvorsen,
Ruud Steltenpool,
Ryo Onodera,
Sam Sneddon,
Sergiu Dumitriu,
Shivakumar Jagalur Matt,
Sigbjørn Finne,
Simon Pieters,
Stewart Brodie,
Sunava Dutta,
Takeshi Kurosawa,
Takeshi Yoshino,
Thomas Roessler,
Thomas Wisniewski,
Tom Magliery,
Travis Leithead,
triple-underscore,
Yaron Tausky,
Yehuda Katz,
Youenn Fablet, and
Zhenbin Xu
for their contributions to this standard. </p>
   <p>Special thanks to the Microsoft employees who first implemented the <code>XMLHttpRequest</code> interface, which was first widely deployed by the
Windows Internet Explorer browser. </p>
   <p>Special thanks to Ian Hickson for drafting an initial version of this specification in
the HTML Standard (then Web Applications 1.0). <a data-link-type="biblio" href="#biblio-html">[HTML]</a> </p>
   <p>Special thanks to the W3C SVG WG for drafting the original <code class="idl"><a data-link-type="idl" href="#progressevent" id="ref-for-progressevent①⑤">ProgressEvent</a></code> class as part of the <a href="https://www.w3.org/TR/2008/REC-SVGTiny12-20081222/svgudom.html">SVG Micro DOM</a>. </p>
   <p>This standard is written by <a href="https://annevankesteren.nl/" lang="nl">Anne van Kesteren</a> (<a href="https://www.mozilla.org/">Mozilla</a>, <a href="mailto:annevk@annevk.nl">annevk@annevk.nl</a>). </p>
   <p>Copyright © 1970 WHATWG (Apple, Google, Mozilla, Microsoft). This work is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/" rel="license">Creative Commons Attribution
4.0 International License</a>. </p>
  </main>
<script>
"use strict";
if ("serviceWorker" in navigator) {
  navigator.serviceWorker.register("/service-worker.js");
}
</script>
  <h2 class="no-num no-ref heading settled" id="index"><span class="content">Index</span><a class="self-link" href="#index"></a></h2>
  <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3>
  <ul class="index">
   <li><a href="#dom-xmlhttprequestresponsetype">""</a><span>, in §4</span>
   <li><a href="#dom-xmlhttprequest-abort">abort()</a><span>, in §4.5.7</span>
   <li><a href="#event-xhr-abort">abort</a><span>, in §4.7</span>
   <li><a href="#dom-formdata-append-blob">append(name, blobValue)</a><span>, in §5</span>
   <li><a href="#dom-formdata-append-blob">append(name, blobValue, filename)</a><span>, in §5</span>
   <li><a href="#dom-formdata-append">append(name, value)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequestresponsetype-arraybuffer">"arraybuffer"</a><span>, in §4</span>
   <li><a href="#arraybuffer-response">arraybuffer response</a><span>, in §4.6.6</span>
   <li><a href="#author-request-headers">author request headers</a><span>, in §4.5</span>
   <li><a href="#dom-xmlhttprequestresponsetype-blob">"blob"</a><span>, in §4</span>
   <li><a href="#blob-response">blob response</a><span>, in §4.6.6</span>
   <li>
    constructor()
    <ul>
     <li><a href="#dom-formdata">constructor for FormData</a><span>, in §5</span>
     <li><a href="#dom-xmlhttprequest">constructor for XMLHttpRequest</a><span>, in §4.1</span>
    </ul>
   <li><a href="#dom-formdata">constructor(form)</a><span>, in §5</span>
   <li><a href="#dom-progressevent-progressevent">constructor(type)</a><span>, in §6</span>
   <li><a href="#dom-progressevent-progressevent">constructor(type, eventInitDict)</a><span>, in §6</span>
   <li><a href="#create-an-entry">create an entry</a><span>, in §5</span>
   <li><a href="#dom-formdata-delete">delete(name)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequestresponsetype-document">"document"</a><span>, in §4</span>
   <li><a href="#document-response">document response</a><span>, in §4.6.6</span>
   <li><a href="#dom-xmlhttprequest-done">DONE</a><span>, in §4.4</span>
   <li><a href="#concept-formdata-entry">entries</a><span>, in §5</span>
   <li><a href="#concept-formdata-entry">entry</a><span>, in §5</span>
   <li><a href="#concept-formdata-entry-list">entry list</a><span>, in §5</span>
   <li><a href="#event-xhr-error">error</a><span>, in §4.7</span>
   <li><a href="#final-charset">final charset</a><span>, in §4.6.6</span>
   <li><a href="#final-mime-type">final MIME type</a><span>, in §4.6.6</span>
   <li><a href="#concept-event-fire-progress">fire a progress event</a><span>, in §6.1</span>
   <li><a href="#dom-formdata">FormData()</a><span>, in §5</span>
   <li><a href="#formdata">FormData</a><span>, in §5</span>
   <li><a href="#formdataentryvalue">FormDataEntryValue</a><span>, in §5</span>
   <li><a href="#dom-formdata">FormData(form)</a><span>, in §5</span>
   <li><a href="#dom-formdata-getall">getAll(name)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequest-getallresponseheaders">getAllResponseHeaders()</a><span>, in §4.6.5</span>
   <li><a href="#dom-formdata-get">get(name)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequest-getresponseheader">getResponseHeader(name)</a><span>, in §4.6.4</span>
   <li><a href="#handle-errors">handle errors</a><span>, in §4.5.6</span>
   <li><a href="#handle-response-end-of-body">handle response end-of-body</a><span>, in §4.5.6</span>
   <li><a href="#dom-formdata-has">has(name)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequest-headers_received">HEADERS_RECEIVED</a><span>, in §4.4</span>
   <li><a href="#dom-xmlhttprequestresponsetype-json">"json"</a><span>, in §4</span>
   <li><a href="#json-response">JSON response</a><span>, in §4.6.6</span>
   <li><a href="#legacy-uppercased-byte-less-than">legacy-uppercased-byte less than</a><span>, in §4.6.5</span>
   <li>
    lengthComputable
    <ul>
     <li><a href="#dom-progressevent-lengthcomputable">attribute for ProgressEvent</a><span>, in §6</span>
     <li><a href="#dom-progresseventinit-lengthcomputable">dict-member for ProgressEventInit</a><span>, in §6</span>
    </ul>
   <li><a href="#event-xhr-load">load</a><span>, in §4.7</span>
   <li>
    loaded
    <ul>
     <li><a href="#dom-progressevent-loaded">attribute for ProgressEvent</a><span>, in §6</span>
     <li><a href="#dom-progresseventinit-loaded">dict-member for ProgressEventInit</a><span>, in §6</span>
    </ul>
   <li><a href="#event-xhr-loadend">loadend</a><span>, in §4.7</span>
   <li><a href="#dom-xmlhttprequest-loading">LOADING</a><span>, in §4.4</span>
   <li><a href="#event-xhr-loadstart">loadstart</a><span>, in §4.7</span>
   <li><a href="#concept-formdata-entry-name">name</a><span>, in §5</span>
   <li><a href="#handler-xhr-onabort">onabort</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onerror">onerror</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onload">onload</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onloadend">onloadend</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onloadstart">onloadstart</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onprogress">onprogress</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-onreadystatechange">onreadystatechange</a><span>, in §4.3</span>
   <li><a href="#handler-xhr-ontimeout">ontimeout</a><span>, in §4.3</span>
   <li><a href="#dom-xmlhttprequest-opened">OPENED</a><span>, in §4.4</span>
   <li><a href="#dom-xmlhttprequest-open">open(method, url)</a><span>, in §4.5.1</span>
   <li><a href="#dom-xmlhttprequest-open-method-url-async-username-password">open(method, url, async)</a><span>, in §4.5.1</span>
   <li><a href="#dom-xmlhttprequest-open-method-url-async-username-password">open(method, url, async, username)</a><span>, in §4.5.1</span>
   <li><a href="#dom-xmlhttprequest-open-method-url-async-username-password">open(method, url, async, username, password)</a><span>, in §4.5.1</span>
   <li><a href="#override-mime-type">override MIME type</a><span>, in §4.6.6</span>
   <li><a href="#dom-xmlhttprequest-overridemimetype">overrideMimeType(mime)</a><span>, in §4.6.7</span>
   <li><a href="#event-xhr-progress">progress</a><span>, in §4.7</span>
   <li><a href="#progressevent">ProgressEvent</a><span>, in §6</span>
   <li><a href="#progresseventinit">ProgressEventInit</a><span>, in §6</span>
   <li><a href="#dom-progressevent-progressevent">ProgressEvent(type)</a><span>, in §6</span>
   <li><a href="#dom-progressevent-progressevent">ProgressEvent(type, eventInitDict)</a><span>, in §6</span>
   <li><a href="#dom-xmlhttprequest-readystate">readyState</a><span>, in §4.4</span>
   <li><a href="#event-xhr-readystatechange">readystatechange</a><span>, in §4.7</span>
   <li><a href="#received-bytes">received bytes</a><span>, in §4.6</span>
   <li><a href="#request-body">request body</a><span>, in §4.5</span>
   <li><a href="#request-error-steps">request error steps</a><span>, in §4.5.6</span>
   <li><a href="#request-method">request method</a><span>, in §4.5</span>
   <li><a href="#request-url">request URL</a><span>, in §4.5</span>
   <li>
    response
    <ul>
     <li><a href="#dom-xmlhttprequest-response">attribute for XMLHttpRequest</a><span>, in §4.6.9</span>
     <li><a href="#response">definition of</a><span>, in §4.6</span>
    </ul>
   <li><a href="#response-mime-type">response MIME type</a><span>, in §4.6.6</span>
   <li><a href="#response-object">response object</a><span>, in §4.6.6</span>
   <li><a href="#dom-xmlhttprequest-responsetext">responseText</a><span>, in §4.6.10</span>
   <li><a href="#dom-xmlhttprequest-responsetype">responseType</a><span>, in §4.6.8</span>
   <li><a href="#dom-xmlhttprequest-responseurl">responseURL</a><span>, in §4.6.1</span>
   <li><a href="#dom-xmlhttprequest-responsexml">responseXML</a><span>, in §4.6.11</span>
   <li><a href="#dom-xmlhttprequest-send">send()</a><span>, in §4.5.6</span>
   <li><a href="#dom-xmlhttprequest-send">send(body)</a><span>, in §4.5.6</span>
   <li><a href="#send-flag">send() flag</a><span>, in §4</span>
   <li><a href="#dom-formdata-set-blob">set(name, blobValue)</a><span>, in §5</span>
   <li><a href="#dom-formdata-set-blob">set(name, blobValue, filename)</a><span>, in §5</span>
   <li><a href="#dom-formdata-set">set(name, value)</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequest-setrequestheader">setRequestHeader(name, value)</a><span>, in §4.5.2</span>
   <li><a href="#concept-xmlhttprequest-state">state</a><span>, in §4</span>
   <li><a href="#dom-xmlhttprequest-status">status</a><span>, in §4.6.2</span>
   <li><a href="#dom-xmlhttprequest-statustext">statusText</a><span>, in §4.6.3</span>
   <li><a href="#synchronous-flag">synchronous flag</a><span>, in §4.5</span>
   <li><a href="#sync-xhr">sync-xhr</a><span>, in §4.8</span>
   <li><a href="#dom-xmlhttprequestresponsetype-text">"text"</a><span>, in §4</span>
   <li><a href="#text-response">text response</a><span>, in §4.6.6</span>
   <li><a href="#timed-out-flag">timed out flag</a><span>, in §4.5</span>
   <li>
    timeout
    <ul>
     <li><a href="#dom-xmlhttprequest-timeout">attribute for XMLHttpRequest</a><span>, in §4.5.3</span>
     <li><a href="#event-xhr-timeout">event for XMLHttpRequest</a><span>, in §4.7</span>
    </ul>
   <li>
    total
    <ul>
     <li><a href="#dom-progressevent-total">attribute for ProgressEvent</a><span>, in §6</span>
     <li><a href="#dom-progresseventinit-total">dict-member for ProgressEventInit</a><span>, in §6</span>
    </ul>
   <li><a href="#dom-xmlhttprequest-unsent">UNSENT</a><span>, in §4.4</span>
   <li><a href="#dom-xmlhttprequest-upload">upload</a><span>, in §4.5.5</span>
   <li><a href="#upload-complete-flag">upload complete flag</a><span>, in §4.5</span>
   <li><a href="#upload-listener-flag">upload listener flag</a><span>, in §4.5</span>
   <li><a href="#concept-formdata-entry-value">value</a><span>, in §5</span>
   <li><a href="#dom-xmlhttprequest-withcredentials">withCredentials</a><span>, in §4.5.4</span>
   <li><a href="#dom-xmlhttprequest">XMLHttpRequest()</a><span>, in §4.1</span>
   <li><a href="#xmlhttprequest">XMLHttpRequest</a><span>, in §4</span>
   <li><a href="#xmlhttprequesteventtarget">XMLHttpRequestEventTarget</a><span>, in §4</span>
   <li><a href="#xmlhttprequestresponsetype">XMLHttpRequestResponseType</a><span>, in §4</span>
   <li><a href="#xmlhttprequestupload">XMLHttpRequestUpload</a><span>, in §4</span>
  </ul>
  <aside class="dfn-panel" data-for="term-for-document">
   <a href="https://dom.spec.whatwg.org/#document">https://dom.spec.whatwg.org/#document</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-document">4. Interface XMLHttpRequest</a> <a href="#ref-for-document①">(2)</a>
    <li><a href="#ref-for-document②">4.5.6. The send() method</a> <a href="#ref-for-document③">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-event">
   <a href="https://dom.spec.whatwg.org/#event">https://dom.spec.whatwg.org/#event</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event">6. Interface ProgressEvent</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dictdef-eventinit">
   <a href="https://dom.spec.whatwg.org/#dictdef-eventinit">https://dom.spec.whatwg.org/#dictdef-eventinit</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dictdef-eventinit">6. Interface ProgressEvent</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-eventtarget">
   <a href="https://dom.spec.whatwg.org/#eventtarget">https://dom.spec.whatwg.org/#eventtarget</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-eventtarget">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dom-event-bubbles">
   <a href="https://dom.spec.whatwg.org/#dom-event-bubbles">https://dom.spec.whatwg.org/#dom-event-bubbles</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-event-bubbles">6.2. Suggested names for events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dom-event-cancelable">
   <a href="https://dom.spec.whatwg.org/#dom-event-cancelable">https://dom.spec.whatwg.org/#dom-event-cancelable</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-event-cancelable">6.2. Suggested names for events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-document-content-type">
   <a href="https://dom.spec.whatwg.org/#concept-document-content-type">https://dom.spec.whatwg.org/#concept-document-content-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-document-content-type">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-context-object">
   <a href="https://dom.spec.whatwg.org/#context-object">https://dom.spec.whatwg.org/#context-object</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-context-object">4.4. States</a>
    <li><a href="#ref-for-context-object①">4.5.1. The open() method</a>
    <li><a href="#ref-for-context-object②">4.5.6. The send() method</a> <a href="#ref-for-context-object③">(2)</a>
    <li><a href="#ref-for-context-object④">4.6.6. Response body</a>
    <li><a href="#ref-for-context-object⑤">5. Interface FormData</a> <a href="#ref-for-context-object⑥">(2)</a> <a href="#ref-for-context-object⑦">(3)</a> <a href="#ref-for-context-object⑧">(4)</a> <a href="#ref-for-context-object⑨">(5)</a> <a href="#ref-for-context-object①⓪">(6)</a> <a href="#ref-for-context-object①①">(7)</a> <a href="#ref-for-context-object①②">(8)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-event-dispatch">
   <a href="https://dom.spec.whatwg.org/#concept-event-dispatch">https://dom.spec.whatwg.org/#concept-event-dispatch</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-event-dispatch">4.5.3. The timeout attribute</a>
    <li><a href="#ref-for-concept-event-dispatch①">6.2. Suggested names for events using the ProgressEvent interface</a> <a href="#ref-for-concept-event-dispatch②">(2)</a> <a href="#ref-for-concept-event-dispatch③">(3)</a>
    <li><a href="#ref-for-concept-event-dispatch④">6.3. Security considerations</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-document">
   <a href="https://dom.spec.whatwg.org/#concept-document">https://dom.spec.whatwg.org/#concept-document</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-document">4.6.6. Response body</a> <a href="#ref-for-concept-document①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-document-encoding">
   <a href="https://dom.spec.whatwg.org/#concept-document-encoding">https://dom.spec.whatwg.org/#concept-document-encoding</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-document-encoding">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-event">
   <a href="https://dom.spec.whatwg.org/#concept-event">https://dom.spec.whatwg.org/#concept-event</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-event">6. Interface ProgressEvent</a>
    <li><a href="#ref-for-concept-event①">6.2. Suggested names for events using the ProgressEvent interface</a> <a href="#ref-for-concept-event②">(2)</a>
    <li><a href="#ref-for-concept-event③">6.3. Security considerations</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-event-listener">
   <a href="https://dom.spec.whatwg.org/#concept-event-listener">https://dom.spec.whatwg.org/#concept-event-listener</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-event-listener">4.2. Garbage collection</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-event-fire">
   <a href="https://dom.spec.whatwg.org/#concept-event-fire">https://dom.spec.whatwg.org/#concept-event-fire</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-event-fire">4.5.1. The open() method</a>
    <li><a href="#ref-for-concept-event-fire①">4.5.6. The send() method</a> <a href="#ref-for-concept-event-fire②">(2)</a> <a href="#ref-for-concept-event-fire③">(3)</a> <a href="#ref-for-concept-event-fire④">(4)</a>
    <li><a href="#ref-for-concept-event-fire⑤">6.1. Firing events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-html-document">
   <a href="https://dom.spec.whatwg.org/#html-document">https://dom.spec.whatwg.org/#html-document</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-html-document">4.5.6. The send() method</a>
    <li><a href="#ref-for-html-document①">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-document-origin">
   <a href="https://dom.spec.whatwg.org/#concept-document-origin">https://dom.spec.whatwg.org/#concept-document-origin</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-document-origin">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dom-event-type">
   <a href="https://dom.spec.whatwg.org/#dom-event-type">https://dom.spec.whatwg.org/#dom-event-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-event-type">6.2. Suggested names for events using the ProgressEvent interface</a> <a href="#ref-for-dom-event-type①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-document-url">
   <a href="https://dom.spec.whatwg.org/#concept-document-url">https://dom.spec.whatwg.org/#concept-document-url</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-document-url">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-xml-document">
   <a href="https://dom.spec.whatwg.org/#xml-document">https://dom.spec.whatwg.org/#xml-document</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xml-document">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-fragment-serializing-algorithm">
   <a href="https://w3c.github.io/DOM-Parsing/#dfn-fragment-serializing-algorithm">https://w3c.github.io/DOM-Parsing/#dfn-fragment-serializing-algorithm</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-fragment-serializing-algorithm">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-decode">
   <a href="https://encoding.spec.whatwg.org/#decode">https://encoding.spec.whatwg.org/#decode</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-decode">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-encoding-get">
   <a href="https://encoding.spec.whatwg.org/#concept-encoding-get">https://encoding.spec.whatwg.org/#concept-encoding-get</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-encoding-get">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-utf-8">
   <a href="https://encoding.spec.whatwg.org/#utf-8">https://encoding.spec.whatwg.org/#utf-8</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-utf-8">4.6.6. Response body</a> <a href="#ref-for-utf-8①">(2)</a> <a href="#ref-for-utf-8②">(3)</a> <a href="#ref-for-utf-8③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-utf-8-encode">
   <a href="https://encoding.spec.whatwg.org/#utf-8-encode">https://encoding.spec.whatwg.org/#utf-8-encode</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-utf-8-encode">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-default-allowlist">
   <a href="https://wicg.github.io/feature-policy/#default-allowlist">https://wicg.github.io/feature-policy/#default-allowlist</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-default-allowlist">4.8. Feature Policy integration</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-policy-controlled-feature">
   <a href="https://wicg.github.io/feature-policy/#policy-controlled-feature">https://wicg.github.io/feature-policy/#policy-controlled-feature</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-policy-controlled-feature">4.8. Feature Policy integration</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-bodyinit">
   <a href="https://fetch.spec.whatwg.org/#bodyinit">https://fetch.spec.whatwg.org/#bodyinit</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-bodyinit">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-aborted">
   <a href="https://fetch.spec.whatwg.org/#concept-response-aborted">https://fetch.spec.whatwg.org/#concept-response-aborted</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-aborted">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-body">
   <a href="https://fetch.spec.whatwg.org/#concept-response-body">https://fetch.spec.whatwg.org/#concept-response-body</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-body">4.4. States</a>
    <li><a href="#ref-for-concept-response-body①">4.5.6. The send() method</a> <a href="#ref-for-concept-response-body②">(2)</a> <a href="#ref-for-concept-response-body③">(3)</a> <a href="#ref-for-concept-response-body④">(4)</a> <a href="#ref-for-concept-response-body⑤">(5)</a> <a href="#ref-for-concept-response-body⑥">(6)</a> <a href="#ref-for-concept-response-body⑦">(7)</a> <a href="#ref-for-concept-response-body⑧">(8)</a> <a href="#ref-for-concept-response-body⑨">(9)</a> <a href="#ref-for-concept-response-body①⓪">(10)</a> <a href="#ref-for-concept-response-body①①">(11)</a> <a href="#ref-for-concept-response-body①②">(12)</a>
    <li><a href="#ref-for-concept-response-body①③">4.6.6. Response body</a> <a href="#ref-for-concept-response-body①④">(2)</a> <a href="#ref-for-concept-response-body①⑤">(3)</a>
    <li><a href="#ref-for-concept-response-body①⑥">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request-client">
   <a href="https://fetch.spec.whatwg.org/#concept-request-client">https://fetch.spec.whatwg.org/#concept-request-client</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request-client">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-list-combine">
   <a href="https://fetch.spec.whatwg.org/#concept-header-list-combine">https://fetch.spec.whatwg.org/#concept-header-list-combine</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-list-combine">4.5.2. The setRequestHeader() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-header-list-contains">
   <a href="https://fetch.spec.whatwg.org/#header-list-contains">https://fetch.spec.whatwg.org/#header-list-contains</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-header-list-contains">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-cors-protocol">
   <a href="https://fetch.spec.whatwg.org/#cors-protocol">https://fetch.spec.whatwg.org/#cors-protocol</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-cors-protocol">6.3. Security considerations</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-cors-preflight-request">
   <a href="https://fetch.spec.whatwg.org/#cors-preflight-request">https://fetch.spec.whatwg.org/#cors-preflight-request</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-cors-preflight-request">4.5. Request</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-credentials">
   <a href="https://fetch.spec.whatwg.org/#credentials">https://fetch.spec.whatwg.org/#credentials</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-credentials">4.5.4. The withCredentials attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request-credentials-mode">
   <a href="https://fetch.spec.whatwg.org/#concept-request-credentials-mode">https://fetch.spec.whatwg.org/#concept-request-credentials-mode</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request-credentials-mode">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-done-flag">
   <a href="https://fetch.spec.whatwg.org/#done-flag">https://fetch.spec.whatwg.org/#done-flag</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-done-flag">4.5.6. The send() method</a> <a href="#ref-for-done-flag①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-readablestream-errored">
   <a href="https://fetch.spec.whatwg.org/#concept-readablestream-errored">https://fetch.spec.whatwg.org/#concept-readablestream-errored</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-readablestream-errored">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-bodyinit-extract">
   <a href="https://fetch.spec.whatwg.org/#concept-bodyinit-extract">https://fetch.spec.whatwg.org/#concept-bodyinit-extract</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-bodyinit-extract">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-extract-mime-type">
   <a href="https://fetch.spec.whatwg.org/#concept-header-extract-mime-type">https://fetch.spec.whatwg.org/#concept-header-extract-mime-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-extract-mime-type">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-fetch">
   <a href="https://fetch.spec.whatwg.org/#concept-fetch">https://fetch.spec.whatwg.org/#concept-fetch</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-fetch">1. Introduction</a>
    <li><a href="#ref-for-concept-fetch①">4.5.1. The open() method</a>
    <li><a href="#ref-for-concept-fetch②">4.5.3. The timeout attribute</a> <a href="#ref-for-concept-fetch③">(2)</a> <a href="#ref-for-concept-fetch④">(3)</a>
    <li><a href="#ref-for-concept-fetch⑤">4.5.4. The withCredentials attribute</a>
    <li><a href="#ref-for-concept-fetch⑥">4.5.6. The send() method</a> <a href="#ref-for-concept-fetch⑦">(2)</a> <a href="#ref-for-concept-fetch⑧">(3)</a> <a href="#ref-for-concept-fetch⑨">(4)</a>
    <li><a href="#ref-for-concept-fetch①⓪">6.4. Example</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-forbidden-header-name">
   <a href="https://fetch.spec.whatwg.org/#forbidden-header-name">https://fetch.spec.whatwg.org/#forbidden-header-name</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-forbidden-header-name">4.5.2. The setRequestHeader() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-forbidden-method">
   <a href="https://fetch.spec.whatwg.org/#forbidden-method">https://fetch.spec.whatwg.org/#forbidden-method</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-forbidden-method">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-list-get">
   <a href="https://fetch.spec.whatwg.org/#concept-header-list-get">https://fetch.spec.whatwg.org/#concept-header-list-get</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-list-get">4.6.4. The getResponseHeader() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-get-reader">
   <a href="https://fetch.spec.whatwg.org/#concept-get-reader">https://fetch.spec.whatwg.org/#concept-get-reader</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-get-reader">4.5.6. The send() method</a> <a href="#ref-for-concept-get-reader①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header">
   <a href="https://fetch.spec.whatwg.org/#concept-header">https://fetch.spec.whatwg.org/#concept-header</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-concept-header①">(2)</a>
    <li><a href="#ref-for-concept-header②">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-header-list">
   <a href="https://fetch.spec.whatwg.org/#concept-response-header-list">https://fetch.spec.whatwg.org/#concept-response-header-list</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-header-list">4.6.4. The getResponseHeader() method</a> <a href="#ref-for-concept-response-header-list①">(2)</a>
    <li><a href="#ref-for-concept-response-header-list②">4.6.5. The getAllResponseHeaders() method</a> <a href="#ref-for-concept-response-header-list③">(2)</a>
    <li><a href="#ref-for-concept-response-header-list④">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request-method">
   <a href="https://fetch.spec.whatwg.org/#concept-request-method">https://fetch.spec.whatwg.org/#concept-request-method</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request-method">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request-mode">
   <a href="https://fetch.spec.whatwg.org/#concept-request-mode">https://fetch.spec.whatwg.org/#concept-request-mode</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request-mode">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-name">
   <a href="https://fetch.spec.whatwg.org/#concept-header-name">https://fetch.spec.whatwg.org/#concept-header-name</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-name">4.5.2. The setRequestHeader() method</a>
    <li><a href="#ref-for-concept-header-name①">4.5.6. The send() method</a>
    <li><a href="#ref-for-concept-header-name②">4.6.5. The getAllResponseHeaders() method</a> <a href="#ref-for-concept-header-name③">(2)</a> <a href="#ref-for-concept-header-name④">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-network-error">
   <a href="https://fetch.spec.whatwg.org/#concept-network-error">https://fetch.spec.whatwg.org/#concept-network-error</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-network-error">4.5.1. The open() method</a>
    <li><a href="#ref-for-concept-network-error①">4.5.6. The send() method</a> <a href="#ref-for-concept-network-error②">(2)</a> <a href="#ref-for-concept-network-error③">(3)</a> <a href="#ref-for-concept-network-error④">(4)</a> <a href="#ref-for-concept-network-error⑤">(5)</a> <a href="#ref-for-concept-network-error⑥">(6)</a>
    <li><a href="#ref-for-concept-network-error⑦">4.5.7. The abort() method</a>
    <li><a href="#ref-for-concept-network-error⑧">4.6. Response</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-method-normalize">
   <a href="https://fetch.spec.whatwg.org/#concept-method-normalize">https://fetch.spec.whatwg.org/#concept-method-normalize</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-method-normalize">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-process-request-body">
   <a href="https://fetch.spec.whatwg.org/#process-request-body">https://fetch.spec.whatwg.org/#process-request-body</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-process-request-body">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-process-request-end-of-body">
   <a href="https://fetch.spec.whatwg.org/#process-request-end-of-body">https://fetch.spec.whatwg.org/#process-request-end-of-body</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-process-request-end-of-body">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-process-response">
   <a href="https://fetch.spec.whatwg.org/#process-response">https://fetch.spec.whatwg.org/#process-response</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-process-response">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-read-chunk-from-readablestream">
   <a href="https://fetch.spec.whatwg.org/#concept-read-chunk-from-readablestream">https://fetch.spec.whatwg.org/#concept-read-chunk-from-readablestream</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-read-chunk-from-readablestream">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-read-all-bytes-from-readablestream">
   <a href="https://fetch.spec.whatwg.org/#concept-read-all-bytes-from-readablestream">https://fetch.spec.whatwg.org/#concept-read-all-bytes-from-readablestream</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-read-all-bytes-from-readablestream">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request">
   <a href="https://fetch.spec.whatwg.org/#concept-request">https://fetch.spec.whatwg.org/#concept-request</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-list-set">
   <a href="https://fetch.spec.whatwg.org/#concept-header-list-set">https://fetch.spec.whatwg.org/#concept-header-list-set</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-list-set">4.5.6. The send() method</a> <a href="#ref-for-concept-header-list-set①">(2)</a> <a href="#ref-for-concept-header-list-set②">(3)</a> <a href="#ref-for-concept-header-list-set③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-list-sort-and-combine">
   <a href="https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine">https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-list-sort-and-combine">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-status">
   <a href="https://fetch.spec.whatwg.org/#concept-response-status">https://fetch.spec.whatwg.org/#concept-response-status</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-status">4.6.2. The status attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-status-message">
   <a href="https://fetch.spec.whatwg.org/#concept-response-status-message">https://fetch.spec.whatwg.org/#concept-response-status-message</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-status-message">4.6.3. The statusText attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-body-stream">
   <a href="https://fetch.spec.whatwg.org/#concept-body-stream">https://fetch.spec.whatwg.org/#concept-body-stream</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-body-stream">4.5.6. The send() method</a> <a href="#ref-for-concept-body-stream①">(2)</a> <a href="#ref-for-concept-body-stream②">(3)</a> <a href="#ref-for-concept-body-stream③">(4)</a> <a href="#ref-for-concept-body-stream④">(5)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-synchronous-flag">
   <a href="https://fetch.spec.whatwg.org/#synchronous-flag">https://fetch.spec.whatwg.org/#synchronous-flag</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-synchronous-flag⑦">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-fetch-terminate">
   <a href="https://fetch.spec.whatwg.org/#concept-fetch-terminate">https://fetch.spec.whatwg.org/#concept-fetch-terminate</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-fetch-terminate">4.2. Garbage collection</a>
    <li><a href="#ref-for-concept-fetch-terminate①">4.5.1. The open() method</a>
    <li><a href="#ref-for-concept-fetch-terminate②">4.5.6. The send() method</a> <a href="#ref-for-concept-fetch-terminate③">(2)</a>
    <li><a href="#ref-for-concept-fetch-terminate④">4.5.7. The abort() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-body-total-bytes">
   <a href="https://fetch.spec.whatwg.org/#concept-body-total-bytes">https://fetch.spec.whatwg.org/#concept-body-total-bytes</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-body-total-bytes">4.5.6. The send() method</a> <a href="#ref-for-concept-body-total-bytes①">(2)</a> <a href="#ref-for-concept-body-total-bytes②">(3)</a> <a href="#ref-for-concept-body-total-bytes③">(4)</a> <a href="#ref-for-concept-body-total-bytes④">(5)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-body-transmitted">
   <a href="https://fetch.spec.whatwg.org/#concept-body-transmitted">https://fetch.spec.whatwg.org/#concept-body-transmitted</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-body-transmitted">4.5.6. The send() method</a> <a href="#ref-for-concept-body-transmitted①">(2)</a> <a href="#ref-for-concept-body-transmitted②">(3)</a> <a href="#ref-for-concept-body-transmitted③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-unsafe-request-flag">
   <a href="https://fetch.spec.whatwg.org/#unsafe-request-flag">https://fetch.spec.whatwg.org/#unsafe-request-flag</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-unsafe-request-flag">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-response-url">
   <a href="https://fetch.spec.whatwg.org/#concept-response-url">https://fetch.spec.whatwg.org/#concept-response-url</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-response-url">4.6.1. The responseURL attribute</a>
    <li><a href="#ref-for-concept-response-url①">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-use-cors-preflight-flag">
   <a href="https://fetch.spec.whatwg.org/#use-cors-preflight-flag">https://fetch.spec.whatwg.org/#use-cors-preflight-flag</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-use-cors-preflight-flag">4.5. Request</a>
    <li><a href="#ref-for-use-cors-preflight-flag①">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-request-use-url-credentials-flag">
   <a href="https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag">https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-request-use-url-credentials-flag">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-header-value">
   <a href="https://fetch.spec.whatwg.org/#concept-header-value">https://fetch.spec.whatwg.org/#concept-header-value</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-header-value">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-concept-header-value①">(2)</a>
    <li><a href="#ref-for-concept-header-value②">4.5.6. The send() method</a>
    <li><a href="#ref-for-concept-header-value③">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-Blob">
   <a href="https://w3c.github.io/FileAPI/#dfn-Blob">https://w3c.github.io/FileAPI/#dfn-Blob</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-Blob">4.6.6. Response body</a>
    <li><a href="#ref-for-dfn-Blob①">5. Interface FormData</a> <a href="#ref-for-dfn-Blob②">(2)</a> <a href="#ref-for-dfn-Blob③">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-file">
   <a href="https://w3c.github.io/FileAPI/#dfn-file">https://w3c.github.io/FileAPI/#dfn-file</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-file">5. Interface FormData</a> <a href="#ref-for-dfn-file①">(2)</a> <a href="#ref-for-dfn-file②">(3)</a> <a href="#ref-for-dfn-file③">(4)</a> <a href="#ref-for-dfn-file④">(5)</a> <a href="#ref-for-dfn-file⑤">(6)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-name">
   <a href="https://w3c.github.io/FileAPI/#dfn-name">https://w3c.github.io/FileAPI/#dfn-name</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-name">5. Interface FormData</a> <a href="#ref-for-dfn-name①">(2)</a> <a href="#ref-for-dfn-name②">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-type">
   <a href="https://w3c.github.io/FileAPI/#dfn-type">https://w3c.github.io/FileAPI/#dfn-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-type">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-eventhandler">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-eventhandler">4. Interface XMLHttpRequest</a> <a href="#ref-for-eventhandler①">(2)</a> <a href="#ref-for-eventhandler②">(3)</a> <a href="#ref-for-eventhandler③">(4)</a> <a href="#ref-for-eventhandler④">(5)</a> <a href="#ref-for-eventhandler⑤">(6)</a> <a href="#ref-for-eventhandler⑥">(7)</a> <a href="#ref-for-eventhandler⑦">(8)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-htmlformelement">
   <a href="https://html.spec.whatwg.org/multipage/forms.html#htmlformelement">https://html.spec.whatwg.org/multipage/forms.html#htmlformelement</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-htmlformelement">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-window">
   <a href="https://html.spec.whatwg.org/multipage/window-object.html#window">https://html.spec.whatwg.org/multipage/window-object.html#window</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-window">4.5.1. The open() method</a> <a href="#ref-for-window①">(2)</a> <a href="#ref-for-window②">(3)</a>
    <li><a href="#ref-for-window③">4.5.3. The timeout attribute</a> <a href="#ref-for-window④">(2)</a>
    <li><a href="#ref-for-window⑤">4.6.8. The responseType attribute</a> <a href="#ref-for-window⑥">(2)</a> <a href="#ref-for-window⑦">(3)</a> <a href="#ref-for-window⑧">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-a-known-definite-encoding">
   <a href="https://html.spec.whatwg.org/multipage/parsing.html#a-known-definite-encoding">https://html.spec.whatwg.org/multipage/parsing.html#a-known-definite-encoding</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-a-known-definite-encoding">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-allowed-to-use">
   <a href="https://html.spec.whatwg.org/multipage/iframe-embed-object.html#allowed-to-use">https://html.spec.whatwg.org/multipage/iframe-embed-object.html#allowed-to-use</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-allowed-to-use">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-api-base-url">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url">https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-api-base-url">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-api-url-character-encoding">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#api-url-character-encoding">https://html.spec.whatwg.org/multipage/webappapis.html#api-url-character-encoding</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-api-url-character-encoding">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-constructing-the-form-data-set">
   <a href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-the-form-data-set">https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-the-form-data-set</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-constructing-the-form-data-set">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-current-global-object">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object">https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-current-global-object">4.5.1. The open() method</a> <a href="#ref-for-current-global-object①">(2)</a> <a href="#ref-for-current-global-object②">(3)</a>
    <li><a href="#ref-for-current-global-object③">4.5.3. The timeout attribute</a> <a href="#ref-for-current-global-object④">(2)</a>
    <li><a href="#ref-for-current-global-object⑤">4.6.8. The responseType attribute</a> <a href="#ref-for-current-global-object⑥">(2)</a> <a href="#ref-for-current-global-object⑦">(3)</a> <a href="#ref-for-current-global-object⑧">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-event-handlers">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers">https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-handlers">4.3. Event handlers</a> <a href="#ref-for-event-handlers①">(2)</a> <a href="#ref-for-event-handlers②">(3)</a> <a href="#ref-for-event-handlers③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-event-handler-event-type">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type">https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-handler-event-type">4.3. Event handlers</a> <a href="#ref-for-event-handler-event-type①">(2)</a> <a href="#ref-for-event-handler-event-type②">(3)</a> <a href="#ref-for-event-handler-event-type③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-fully-active">
   <a href="https://html.spec.whatwg.org/multipage/browsers.html#fully-active">https://html.spec.whatwg.org/multipage/browsers.html#fully-active</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-fully-active">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-in-parallel">
   <a href="https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel">https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-in-parallel">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-networking-task-source">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#networking-task-source">https://html.spec.whatwg.org/multipage/webappapis.html#networking-task-source</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-networking-task-source">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-settings-object-origin">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin">https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-settings-object-origin">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-prescan-a-byte-stream-to-determine-its-encoding">
   <a href="https://html.spec.whatwg.org/multipage/parsing.html#prescan-a-byte-stream-to-determine-its-encoding">https://html.spec.whatwg.org/multipage/parsing.html#prescan-a-byte-stream-to-determine-its-encoding</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-prescan-a-byte-stream-to-determine-its-encoding">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-the-progress-element">
   <a href="https://html.spec.whatwg.org/multipage/form-elements.html#the-progress-element">https://html.spec.whatwg.org/multipage/form-elements.html#the-progress-element</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-the-progress-element">6.4. Example</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-queue-a-task">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task">https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-queue-a-task">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-relevant-settings-object">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object">https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-relevant-settings-object">4.5.1. The open() method</a>
    <li><a href="#ref-for-relevant-settings-object①">4.5.6. The send() method</a> <a href="#ref-for-relevant-settings-object②">(2)</a>
    <li><a href="#ref-for-relevant-settings-object③">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-responsible-document">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document">https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-responsible-document">4.5.1. The open() method</a>
    <li><a href="#ref-for-responsible-document①">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-same-origin">
   <a href="https://html.spec.whatwg.org/multipage/origin.html#same-origin">https://html.spec.whatwg.org/multipage/origin.html#same-origin</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-same-origin">4.5.4. The withCredentials attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-task">
   <a href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-task">https://html.spec.whatwg.org/multipage/webappapis.html#concept-task</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-task">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-xml-parser">
   <a href="https://html.spec.whatwg.org/multipage/xhtml.html#xml-parser">https://html.spec.whatwg.org/multipage/xhtml.html#xml-parser</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xml-parser">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-xml-scripting-support-disabled">
   <a href="https://html.spec.whatwg.org/multipage/xhtml.html#xml-scripting-support-disabled">https://html.spec.whatwg.org/multipage/xhtml.html#xml-scripting-support-disabled</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xml-scripting-support-disabled">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list-append">
   <a href="https://infra.spec.whatwg.org/#list-append">https://infra.spec.whatwg.org/#list-append</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list-append">5. Interface FormData</a> <a href="#ref-for-list-append①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-ascii-case-insensitive">
   <a href="https://infra.spec.whatwg.org/#ascii-case-insensitive">https://infra.spec.whatwg.org/#ascii-case-insensitive</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-ascii-case-insensitive">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-byte-less-than">
   <a href="https://infra.spec.whatwg.org/#byte-less-than">https://infra.spec.whatwg.org/#byte-less-than</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-byte-less-than">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-byte-sequence">
   <a href="https://infra.spec.whatwg.org/#byte-sequence">https://infra.spec.whatwg.org/#byte-sequence</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-byte-sequence">4.6.5. The getAllResponseHeaders() method</a> <a href="#ref-for-byte-sequence①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-byte-case-insensitive">
   <a href="https://infra.spec.whatwg.org/#byte-case-insensitive">https://infra.spec.whatwg.org/#byte-case-insensitive</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-byte-case-insensitive">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-byte-uppercase">
   <a href="https://infra.spec.whatwg.org/#byte-uppercase">https://infra.spec.whatwg.org/#byte-uppercase</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-byte-uppercase">4.6.5. The getAllResponseHeaders() method</a> <a href="#ref-for-byte-uppercase①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-map-exists">
   <a href="https://infra.spec.whatwg.org/#map-exists">https://infra.spec.whatwg.org/#map-exists</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-map-exists">4.5.6. The send() method</a>
    <li><a href="#ref-for-map-exists①">4.6.6. Response body</a> <a href="#ref-for-map-exists②">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list-iterate">
   <a href="https://infra.spec.whatwg.org/#list-iterate">https://infra.spec.whatwg.org/#list-iterate</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list-iterate">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list">
   <a href="https://infra.spec.whatwg.org/#list">https://infra.spec.whatwg.org/#list</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-parse-json-from-bytes">
   <a href="https://infra.spec.whatwg.org/#parse-json-from-bytes">https://infra.spec.whatwg.org/#parse-json-from-bytes</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-parse-json-from-bytes">4.6.6. Response body</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list-remove">
   <a href="https://infra.spec.whatwg.org/#list-remove">https://infra.spec.whatwg.org/#list-remove</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list-remove">5. Interface FormData</a> <a href="#ref-for-list-remove①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list-replace">
   <a href="https://infra.spec.whatwg.org/#list-replace">https://infra.spec.whatwg.org/#list-replace</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list-replace">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-map-set">
   <a href="https://infra.spec.whatwg.org/#map-set">https://infra.spec.whatwg.org/#map-set</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-map-set">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-list-sort-in-ascending-order">
   <a href="https://infra.spec.whatwg.org/#list-sort-in-ascending-order">https://infra.spec.whatwg.org/#list-sort-in-ascending-order</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-list-sort-in-ascending-order">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-html-mime-type">
   <a href="https://mimesniff.spec.whatwg.org/#html-mime-type">https://mimesniff.spec.whatwg.org/#html-mime-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-html-mime-type">4.6.6. Response body</a> <a href="#ref-for-html-mime-type①">(2)</a> <a href="#ref-for-html-mime-type②">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-parameters">
   <a href="https://mimesniff.spec.whatwg.org/#parameters">https://mimesniff.spec.whatwg.org/#parameters</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-parameters">4.5.6. The send() method</a> <a href="#ref-for-parameters①">(2)</a> <a href="#ref-for-parameters②">(3)</a>
    <li><a href="#ref-for-parameters③">4.6.6. Response body</a> <a href="#ref-for-parameters④">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-parse-a-mime-type">
   <a href="https://mimesniff.spec.whatwg.org/#parse-a-mime-type">https://mimesniff.spec.whatwg.org/#parse-a-mime-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-parse-a-mime-type">4.6.7. The overrideMimeType() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-parse-a-mime-type-from-bytes">
   <a href="https://mimesniff.spec.whatwg.org/#parse-a-mime-type-from-bytes">https://mimesniff.spec.whatwg.org/#parse-a-mime-type-from-bytes</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-parse-a-mime-type-from-bytes">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-serialize-a-mime-type-to-bytes">
   <a href="https://mimesniff.spec.whatwg.org/#serialize-a-mime-type-to-bytes">https://mimesniff.spec.whatwg.org/#serialize-a-mime-type-to-bytes</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-serialize-a-mime-type-to-bytes">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-xml-mime-type">
   <a href="https://mimesniff.spec.whatwg.org/#xml-mime-type">https://mimesniff.spec.whatwg.org/#xml-mime-type</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xml-mime-type">4.6.6. Response body</a> <a href="#ref-for-xml-mime-type①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-url-host">
   <a href="https://url.spec.whatwg.org/#concept-url-host">https://url.spec.whatwg.org/#concept-url-host</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-url-host">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-url-password">
   <a href="https://url.spec.whatwg.org/#concept-url-password">https://url.spec.whatwg.org/#concept-url-password</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-url-password">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-set-the-password">
   <a href="https://url.spec.whatwg.org/#set-the-password">https://url.spec.whatwg.org/#set-the-password</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-set-the-password">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-set-the-username">
   <a href="https://url.spec.whatwg.org/#set-the-username">https://url.spec.whatwg.org/#set-the-username</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-set-the-username">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-url-parser">
   <a href="https://url.spec.whatwg.org/#concept-url-parser">https://url.spec.whatwg.org/#concept-url-parser</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-url-parser">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-url-serializer">
   <a href="https://url.spec.whatwg.org/#concept-url-serializer">https://url.spec.whatwg.org/#concept-url-serializer</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-url-serializer">4.6.1. The responseURL attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-concept-url-username">
   <a href="https://url.spec.whatwg.org/#concept-url-username">https://url.spec.whatwg.org/#concept-url-username</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-url-username">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-aborterror">
   <a href="https://heycam.github.io/webidl/#aborterror">https://heycam.github.io/webidl/#aborterror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-aborterror">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-ArrayBuffer">
   <a href="https://heycam.github.io/webidl/#idl-ArrayBuffer">https://heycam.github.io/webidl/#idl-ArrayBuffer</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-ArrayBuffer">4.6.6. Response body</a> <a href="#ref-for-idl-ArrayBuffer①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-ByteString">
   <a href="https://heycam.github.io/webidl/#idl-ByteString">https://heycam.github.io/webidl/#idl-ByteString</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-ByteString">4. Interface XMLHttpRequest</a> <a href="#ref-for-idl-ByteString①">(2)</a> <a href="#ref-for-idl-ByteString②">(3)</a> <a href="#ref-for-idl-ByteString③">(4)</a> <a href="#ref-for-idl-ByteString④">(5)</a> <a href="#ref-for-idl-ByteString⑤">(6)</a> <a href="#ref-for-idl-ByteString⑥">(7)</a> <a href="#ref-for-idl-ByteString⑦">(8)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-DOMException">
   <a href="https://heycam.github.io/webidl/#idl-DOMException">https://heycam.github.io/webidl/#idl-DOMException</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-DOMException">4.5.1. The open() method</a> <a href="#ref-for-idl-DOMException①">(2)</a> <a href="#ref-for-idl-DOMException②">(3)</a> <a href="#ref-for-idl-DOMException③">(4)</a> <a href="#ref-for-idl-DOMException④">(5)</a> <a href="#ref-for-idl-DOMException⑤">(6)</a> <a href="#ref-for-idl-DOMException⑥">(7)</a> <a href="#ref-for-idl-DOMException⑦">(8)</a> <a href="#ref-for-idl-DOMException⑧">(9)</a>
    <li><a href="#ref-for-idl-DOMException⑨">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-idl-DOMException①⓪">(2)</a> <a href="#ref-for-idl-DOMException①①">(3)</a> <a href="#ref-for-idl-DOMException①②">(4)</a> <a href="#ref-for-idl-DOMException①③">(5)</a>
    <li><a href="#ref-for-idl-DOMException①④">4.5.3. The timeout attribute</a> <a href="#ref-for-idl-DOMException①⑤">(2)</a> <a href="#ref-for-idl-DOMException①⑥">(3)</a>
    <li><a href="#ref-for-idl-DOMException①⑦">4.5.4. The withCredentials attribute</a> <a href="#ref-for-idl-DOMException①⑧">(2)</a> <a href="#ref-for-idl-DOMException①⑨">(3)</a>
    <li><a href="#ref-for-idl-DOMException②⓪">4.5.6. The send() method</a> <a href="#ref-for-idl-DOMException②①">(2)</a> <a href="#ref-for-idl-DOMException②②">(3)</a> <a href="#ref-for-idl-DOMException②③">(4)</a> <a href="#ref-for-idl-DOMException②④">(5)</a> <a href="#ref-for-idl-DOMException②⑤">(6)</a>
    <li><a href="#ref-for-idl-DOMException②⑥">4.6.7. The overrideMimeType() method</a> <a href="#ref-for-idl-DOMException②⑦">(2)</a>
    <li><a href="#ref-for-idl-DOMException②⑧">4.6.8. The responseType attribute</a> <a href="#ref-for-idl-DOMException②⑨">(2)</a> <a href="#ref-for-idl-DOMException③⓪">(3)</a> <a href="#ref-for-idl-DOMException③①">(4)</a>
    <li><a href="#ref-for-idl-DOMException③②">4.6.10. The responseText attribute</a> <a href="#ref-for-idl-DOMException③③">(2)</a>
    <li><a href="#ref-for-idl-DOMException③④">4.6.11. The responseXML attribute</a> <a href="#ref-for-idl-DOMException③⑤">(2)</a>
    <li><a href="#ref-for-idl-DOMException③⑥">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-DOMString">
   <a href="https://heycam.github.io/webidl/#idl-DOMString">https://heycam.github.io/webidl/#idl-DOMString</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-DOMString">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-idl-DOMString①">6. Interface ProgressEvent</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-Exposed">
   <a href="https://heycam.github.io/webidl/#Exposed">https://heycam.github.io/webidl/#Exposed</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-Exposed">4. Interface XMLHttpRequest</a> <a href="#ref-for-Exposed①">(2)</a> <a href="#ref-for-Exposed②">(3)</a> <a href="#ref-for-Exposed③">(4)</a>
    <li><a href="#ref-for-Exposed④">5. Interface FormData</a>
    <li><a href="#ref-for-Exposed⑤">6. Interface ProgressEvent</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-invalidaccesserror">
   <a href="https://heycam.github.io/webidl/#invalidaccesserror">https://heycam.github.io/webidl/#invalidaccesserror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-invalidaccesserror">4.5.1. The open() method</a> <a href="#ref-for-invalidaccesserror①">(2)</a> <a href="#ref-for-invalidaccesserror②">(3)</a>
    <li><a href="#ref-for-invalidaccesserror③">4.5.3. The timeout attribute</a> <a href="#ref-for-invalidaccesserror④">(2)</a>
    <li><a href="#ref-for-invalidaccesserror⑤">4.6.8. The responseType attribute</a> <a href="#ref-for-invalidaccesserror⑥">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-invalidstateerror">
   <a href="https://heycam.github.io/webidl/#invalidstateerror">https://heycam.github.io/webidl/#invalidstateerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-invalidstateerror">4.5.1. The open() method</a>
    <li><a href="#ref-for-invalidstateerror①">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-invalidstateerror②">(2)</a> <a href="#ref-for-invalidstateerror③">(3)</a>
    <li><a href="#ref-for-invalidstateerror④">4.5.4. The withCredentials attribute</a> <a href="#ref-for-invalidstateerror⑤">(2)</a> <a href="#ref-for-invalidstateerror⑥">(3)</a>
    <li><a href="#ref-for-invalidstateerror⑦">4.5.6. The send() method</a> <a href="#ref-for-invalidstateerror⑧">(2)</a> <a href="#ref-for-invalidstateerror⑨">(3)</a>
    <li><a href="#ref-for-invalidstateerror①⓪">4.6.7. The overrideMimeType() method</a> <a href="#ref-for-invalidstateerror①①">(2)</a>
    <li><a href="#ref-for-invalidstateerror①②">4.6.8. The responseType attribute</a> <a href="#ref-for-invalidstateerror①③">(2)</a>
    <li><a href="#ref-for-invalidstateerror①④">4.6.10. The responseText attribute</a> <a href="#ref-for-invalidstateerror①⑤">(2)</a>
    <li><a href="#ref-for-invalidstateerror①⑥">4.6.11. The responseXML attribute</a> <a href="#ref-for-invalidstateerror①⑦">(2)</a>
    <li><a href="#ref-for-invalidstateerror①⑧">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-networkerror">
   <a href="https://heycam.github.io/webidl/#networkerror">https://heycam.github.io/webidl/#networkerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-networkerror">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-SameObject">
   <a href="https://heycam.github.io/webidl/#SameObject">https://heycam.github.io/webidl/#SameObject</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-SameObject">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-securityerror">
   <a href="https://heycam.github.io/webidl/#securityerror">https://heycam.github.io/webidl/#securityerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-securityerror">4.5.1. The open() method</a> <a href="#ref-for-securityerror①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-syntaxerror">
   <a href="https://heycam.github.io/webidl/#syntaxerror">https://heycam.github.io/webidl/#syntaxerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-syntaxerror">4.5.1. The open() method</a> <a href="#ref-for-syntaxerror①">(2)</a> <a href="#ref-for-syntaxerror②">(3)</a>
    <li><a href="#ref-for-syntaxerror③">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-syntaxerror④">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-timeouterror">
   <a href="https://heycam.github.io/webidl/#timeouterror">https://heycam.github.io/webidl/#timeouterror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-timeouterror">4.5.3. The timeout attribute</a>
    <li><a href="#ref-for-timeouterror①">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-USVString">
   <a href="https://heycam.github.io/webidl/#idl-USVString">https://heycam.github.io/webidl/#idl-USVString</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-USVString">4. Interface XMLHttpRequest</a> <a href="#ref-for-idl-USVString①">(2)</a> <a href="#ref-for-idl-USVString②">(3)</a> <a href="#ref-for-idl-USVString③">(4)</a> <a href="#ref-for-idl-USVString④">(5)</a> <a href="#ref-for-idl-USVString⑤">(6)</a>
    <li><a href="#ref-for-idl-USVString⑥">4.5.6. The send() method</a>
    <li><a href="#ref-for-idl-USVString⑦">5. Interface FormData</a> <a href="#ref-for-idl-USVString⑧">(2)</a> <a href="#ref-for-idl-USVString⑨">(3)</a> <a href="#ref-for-idl-USVString①⓪">(4)</a> <a href="#ref-for-idl-USVString①①">(5)</a> <a href="#ref-for-idl-USVString①②">(6)</a> <a href="#ref-for-idl-USVString①③">(7)</a> <a href="#ref-for-idl-USVString①④">(8)</a> <a href="#ref-for-idl-USVString①⑤">(9)</a> <a href="#ref-for-idl-USVString①⑥">(10)</a> <a href="#ref-for-idl-USVString①⑦">(11)</a> <a href="#ref-for-idl-USVString①⑧">(12)</a> <a href="#ref-for-idl-USVString①⑨">(13)</a> <a href="#ref-for-idl-USVString②⓪">(14)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-boolean">
   <a href="https://heycam.github.io/webidl/#idl-boolean">https://heycam.github.io/webidl/#idl-boolean</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-boolean">4. Interface XMLHttpRequest</a> <a href="#ref-for-idl-boolean①">(2)</a>
    <li><a href="#ref-for-idl-boolean②">5. Interface FormData</a>
    <li><a href="#ref-for-idl-boolean③">6. Interface ProgressEvent</a> <a href="#ref-for-idl-boolean④">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-obtain-unicode">
   <a href="https://heycam.github.io/webidl/#dfn-obtain-unicode">https://heycam.github.io/webidl/#dfn-obtain-unicode</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-obtain-unicode">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-throw">
   <a href="https://heycam.github.io/webidl/#dfn-throw">https://heycam.github.io/webidl/#dfn-throw</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-throw">4.5.1. The open() method</a> <a href="#ref-for-dfn-throw①">(2)</a> <a href="#ref-for-dfn-throw②">(3)</a> <a href="#ref-for-dfn-throw③">(4)</a> <a href="#ref-for-dfn-throw④">(5)</a> <a href="#ref-for-dfn-throw⑤">(6)</a>
    <li><a href="#ref-for-dfn-throw⑥">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-dfn-throw⑦">(2)</a> <a href="#ref-for-dfn-throw⑧">(3)</a>
    <li><a href="#ref-for-dfn-throw⑨">4.5.3. The timeout attribute</a> <a href="#ref-for-dfn-throw①⓪">(2)</a>
    <li><a href="#ref-for-dfn-throw①①">4.5.4. The withCredentials attribute</a> <a href="#ref-for-dfn-throw①②">(2)</a>
    <li><a href="#ref-for-dfn-throw①③">4.5.6. The send() method</a> <a href="#ref-for-dfn-throw①④">(2)</a> <a href="#ref-for-dfn-throw①⑤">(3)</a>
    <li><a href="#ref-for-dfn-throw①⑥">4.6.7. The overrideMimeType() method</a>
    <li><a href="#ref-for-dfn-throw①⑦">4.6.8. The responseType attribute</a> <a href="#ref-for-dfn-throw①⑧">(2)</a>
    <li><a href="#ref-for-dfn-throw①⑨">4.6.10. The responseText attribute</a>
    <li><a href="#ref-for-dfn-throw②⓪">4.6.11. The responseXML attribute</a>
    <li><a href="#ref-for-dfn-throw②①">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-unsigned-long">
   <a href="https://heycam.github.io/webidl/#idl-unsigned-long">https://heycam.github.io/webidl/#idl-unsigned-long</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-unsigned-long">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-unsigned-long-long">
   <a href="https://heycam.github.io/webidl/#idl-unsigned-long-long">https://heycam.github.io/webidl/#idl-unsigned-long-long</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-unsigned-long-long">6. Interface ProgressEvent</a> <a href="#ref-for-idl-unsigned-long-long①">(2)</a> <a href="#ref-for-idl-unsigned-long-long②">(3)</a> <a href="#ref-for-idl-unsigned-long-long③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-unsigned-short">
   <a href="https://heycam.github.io/webidl/#idl-unsigned-short">https://heycam.github.io/webidl/#idl-unsigned-short</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-unsigned-short">4. Interface XMLHttpRequest</a> <a href="#ref-for-idl-unsigned-short①">(2)</a> <a href="#ref-for-idl-unsigned-short②">(3)</a> <a href="#ref-for-idl-unsigned-short③">(4)</a> <a href="#ref-for-idl-unsigned-short④">(5)</a> <a href="#ref-for-idl-unsigned-short⑤">(6)</a> <a href="#ref-for-idl-unsigned-short⑥">(7)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-dfn-value-pairs-to-iterate-over">
   <a href="https://heycam.github.io/webidl/#dfn-value-pairs-to-iterate-over">https://heycam.github.io/webidl/#dfn-value-pairs-to-iterate-over</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-value-pairs-to-iterate-over">5. Interface FormData</a>
   </ul>
  </aside>
  <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span class="content">Terms defined by reference</span><a class="self-link" href="#index-defined-elsewhere"></a></h3>
  <ul class="index">
   <li>
    <a data-link-type="biblio">[DOM]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-document" style="color:initial">Document</span>
     <li><span class="dfn-paneled" id="term-for-event" style="color:initial">Event</span>
     <li><span class="dfn-paneled" id="term-for-dictdef-eventinit" style="color:initial">EventInit</span>
     <li><span class="dfn-paneled" id="term-for-eventtarget" style="color:initial">EventTarget</span>
     <li><span class="dfn-paneled" id="term-for-dom-event-bubbles" style="color:initial">bubbles</span>
     <li><span class="dfn-paneled" id="term-for-dom-event-cancelable" style="color:initial">cancelable</span>
     <li><span class="dfn-paneled" id="term-for-concept-document-content-type" style="color:initial">content type</span>
     <li><span class="dfn-paneled" id="term-for-context-object" style="color:initial">context object</span>
     <li><span class="dfn-paneled" id="term-for-concept-event-dispatch" style="color:initial">dispatch</span>
     <li><span class="dfn-paneled" id="term-for-concept-document" style="color:initial">document</span>
     <li><span class="dfn-paneled" id="term-for-concept-document-encoding" style="color:initial">encoding</span>
     <li><span class="dfn-paneled" id="term-for-concept-event" style="color:initial">event</span>
     <li><span class="dfn-paneled" id="term-for-concept-event-listener" style="color:initial">event listener</span>
     <li><span class="dfn-paneled" id="term-for-concept-event-fire" style="color:initial">fire an event</span>
     <li><span class="dfn-paneled" id="term-for-html-document" style="color:initial">html document</span>
     <li><span class="dfn-paneled" id="term-for-concept-document-origin" style="color:initial">origin</span>
     <li><span class="dfn-paneled" id="term-for-dom-event-type" style="color:initial">type</span>
     <li><span class="dfn-paneled" id="term-for-concept-document-url" style="color:initial">url</span>
     <li><span class="dfn-paneled" id="term-for-xml-document" style="color:initial">xml document</span>
    </ul>
   <li>
    <a data-link-type="biblio">[DOMPS]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-dfn-fragment-serializing-algorithm" style="color:initial">fragment serializing algorithm</span>
    </ul>
   <li>
    <a data-link-type="biblio">[ENCODING]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-decode" style="color:initial">decode</span>
     <li><span class="dfn-paneled" id="term-for-concept-encoding-get" style="color:initial">getting an encoding</span>
     <li><span class="dfn-paneled" id="term-for-utf-8" style="color:initial">utf-8</span>
     <li><span class="dfn-paneled" id="term-for-utf-8-encode" style="color:initial">utf-8 encode</span>
    </ul>
   <li>
    <a data-link-type="biblio">[FEATURE-POLICY]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-default-allowlist" style="color:initial">default allowlist</span>
     <li><span class="dfn-paneled" id="term-for-policy-controlled-feature" style="color:initial">policy-controlled feature</span>
    </ul>
   <li>
    <a data-link-type="biblio">[FETCH]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-bodyinit" style="color:initial">BodyInit</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-aborted" style="color:initial">aborted flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-body" style="color:initial">body <small>(for response)</small></span>
     <li><span class="dfn-paneled" id="term-for-concept-request-client" style="color:initial">client</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-list-combine" style="color:initial">combine</span>
     <li><span class="dfn-paneled" id="term-for-header-list-contains" style="color:initial">contains</span>
     <li><span class="dfn-paneled" id="term-for-cors-protocol" style="color:initial">cors protocol</span>
     <li><span class="dfn-paneled" id="term-for-cors-preflight-request" style="color:initial">cors-preflight request</span>
     <li><span class="dfn-paneled" id="term-for-credentials" style="color:initial">credentials</span>
     <li><span class="dfn-paneled" id="term-for-concept-request-credentials-mode" style="color:initial">credentials mode</span>
     <li><span class="dfn-paneled" id="term-for-done-flag" style="color:initial">done flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-readablestream-errored" style="color:initial">errored</span>
     <li><span class="dfn-paneled" id="term-for-concept-bodyinit-extract" style="color:initial">extract</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-extract-mime-type" style="color:initial">extracting a mime type</span>
     <li><span class="dfn-paneled" id="term-for-concept-fetch" style="color:initial">fetch</span>
     <li><span class="dfn-paneled" id="term-for-forbidden-header-name" style="color:initial">forbidden header name</span>
     <li><span class="dfn-paneled" id="term-for-forbidden-method" style="color:initial">forbidden method</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-list-get" style="color:initial">get</span>
     <li><span class="dfn-paneled" id="term-for-concept-get-reader" style="color:initial">get a reader</span>
     <li><span class="dfn-paneled" id="term-for-concept-header" style="color:initial">header</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-header-list" style="color:initial">header list <small>(for response)</small></span>
     <li><span class="dfn-paneled" id="term-for-concept-request-method" style="color:initial">method <small>(for request)</small></span>
     <li><span class="dfn-paneled" id="term-for-concept-request-mode" style="color:initial">mode</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-name" style="color:initial">name</span>
     <li><span class="dfn-paneled" id="term-for-concept-network-error" style="color:initial">network error</span>
     <li><span class="dfn-paneled" id="term-for-concept-method-normalize" style="color:initial">normalize <small>(for method)</small></span>
     <li><span class="dfn-paneled" id="term-for-process-request-body" style="color:initial">process request body</span>
     <li><span class="dfn-paneled" id="term-for-process-request-end-of-body" style="color:initial">process request end-of-body</span>
     <li><span class="dfn-paneled" id="term-for-process-response" style="color:initial">process response</span>
     <li><span class="dfn-paneled" id="term-for-concept-read-chunk-from-readablestream" style="color:initial">read a chunk</span>
     <li><span class="dfn-paneled" id="term-for-concept-read-all-bytes-from-readablestream" style="color:initial">read all bytes</span>
     <li><span class="dfn-paneled" id="term-for-concept-request" style="color:initial">request</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-list-set" style="color:initial">set</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-list-sort-and-combine" style="color:initial">sort and combine</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-status" style="color:initial">status</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-status-message" style="color:initial">status message</span>
     <li><span class="dfn-paneled" id="term-for-concept-body-stream" style="color:initial">stream</span>
     <li><span class="dfn-paneled" id="term-for-synchronous-flag" style="color:initial">synchronous flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-fetch-terminate" style="color:initial">terminated</span>
     <li><span class="dfn-paneled" id="term-for-concept-body-total-bytes" style="color:initial">total bytes</span>
     <li><span class="dfn-paneled" id="term-for-concept-body-transmitted" style="color:initial">transmitted bytes</span>
     <li><span class="dfn-paneled" id="term-for-unsafe-request-flag" style="color:initial">unsafe-request flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-response-url" style="color:initial">url <small>(for response)</small></span>
     <li><span class="dfn-paneled" id="term-for-use-cors-preflight-flag" style="color:initial">use-cors-preflight flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-request-use-url-credentials-flag" style="color:initial">use-url-credentials flag</span>
     <li><span class="dfn-paneled" id="term-for-concept-header-value" style="color:initial">value</span>
    </ul>
   <li>
    <a data-link-type="biblio">[FILEAPI]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-dfn-Blob" style="color:initial">Blob</span>
     <li><span class="dfn-paneled" id="term-for-dfn-file" style="color:initial">File</span>
     <li><span class="dfn-paneled" id="term-for-dfn-name" style="color:initial">name</span>
     <li><span class="dfn-paneled" id="term-for-dfn-type" style="color:initial">type</span>
    </ul>
   <li>
    <a data-link-type="biblio">[HTML]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-eventhandler" style="color:initial">EventHandler</span>
     <li><span class="dfn-paneled" id="term-for-htmlformelement" style="color:initial">HTMLFormElement</span>
     <li><span class="dfn-paneled" id="term-for-window" style="color:initial">Window</span>
     <li><span class="dfn-paneled" id="term-for-a-known-definite-encoding" style="color:initial">a known definite encoding</span>
     <li><span class="dfn-paneled" id="term-for-allowed-to-use" style="color:initial">allowed to use</span>
     <li><span class="dfn-paneled" id="term-for-api-base-url" style="color:initial">api base url</span>
     <li><span class="dfn-paneled" id="term-for-api-url-character-encoding" style="color:initial">api url character encoding</span>
     <li><span class="dfn-paneled" id="term-for-constructing-the-form-data-set" style="color:initial">constructing the entry list</span>
     <li><span class="dfn-paneled" id="term-for-current-global-object" style="color:initial">current global object</span>
     <li><span class="dfn-paneled" id="term-for-event-handlers" style="color:initial">event handler</span>
     <li><span class="dfn-paneled" id="term-for-event-handler-event-type" style="color:initial">event handler event type</span>
     <li><span class="dfn-paneled" id="term-for-fully-active" style="color:initial">fully active</span>
     <li><span class="dfn-paneled" id="term-for-in-parallel" style="color:initial">in parallel</span>
     <li><span class="dfn-paneled" id="term-for-networking-task-source" style="color:initial">networking task source</span>
     <li><span class="dfn-paneled" id="term-for-concept-settings-object-origin" style="color:initial">origin</span>
     <li><span class="dfn-paneled" id="term-for-prescan-a-byte-stream-to-determine-its-encoding" style="color:initial">prescan a byte stream to determine its encoding</span>
     <li><span class="dfn-paneled" id="term-for-the-progress-element" style="color:initial">progress</span>
     <li><span class="dfn-paneled" id="term-for-queue-a-task" style="color:initial">queue a task</span>
     <li><span class="dfn-paneled" id="term-for-relevant-settings-object" style="color:initial">relevant settings object</span>
     <li><span class="dfn-paneled" id="term-for-responsible-document" style="color:initial">responsible document</span>
     <li><span class="dfn-paneled" id="term-for-same-origin" style="color:initial">same origin</span>
     <li><span class="dfn-paneled" id="term-for-concept-task" style="color:initial">task</span>
     <li><span class="dfn-paneled" id="term-for-xml-parser" style="color:initial">xml parser</span>
     <li><span class="dfn-paneled" id="term-for-xml-scripting-support-disabled" style="color:initial">xml scripting support disabled</span>
    </ul>
   <li>
    <a data-link-type="biblio">[INFRA]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-list-append" style="color:initial">append</span>
     <li><span class="dfn-paneled" id="term-for-ascii-case-insensitive" style="color:initial">ascii case-insensitive</span>
     <li><span class="dfn-paneled" id="term-for-byte-less-than" style="color:initial">byte less than</span>
     <li><span class="dfn-paneled" id="term-for-byte-sequence" style="color:initial">byte sequence</span>
     <li><span class="dfn-paneled" id="term-for-byte-case-insensitive" style="color:initial">byte-case-insensitive</span>
     <li><span class="dfn-paneled" id="term-for-byte-uppercase" style="color:initial">byte-uppercase</span>
     <li><span class="dfn-paneled" id="term-for-map-exists" style="color:initial">exist</span>
     <li><span class="dfn-paneled" id="term-for-list-iterate" style="color:initial">for each</span>
     <li><span class="dfn-paneled" id="term-for-list" style="color:initial">list</span>
     <li><span class="dfn-paneled" id="term-for-parse-json-from-bytes" style="color:initial">parse json from bytes</span>
     <li><span class="dfn-paneled" id="term-for-list-remove" style="color:initial">remove</span>
     <li><span class="dfn-paneled" id="term-for-list-replace" style="color:initial">replace</span>
     <li><span class="dfn-paneled" id="term-for-map-set" style="color:initial">set</span>
     <li><span class="dfn-paneled" id="term-for-list-sort-in-ascending-order" style="color:initial">sorting</span>
    </ul>
   <li>
    <a data-link-type="biblio">[MIMESNIFF]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-html-mime-type" style="color:initial">html mime type</span>
     <li><span class="dfn-paneled" id="term-for-parameters" style="color:initial">parameters</span>
     <li><span class="dfn-paneled" id="term-for-parse-a-mime-type" style="color:initial">parse a mime type</span>
     <li><span class="dfn-paneled" id="term-for-parse-a-mime-type-from-bytes" style="color:initial">parse a mime type from bytes</span>
     <li><span class="dfn-paneled" id="term-for-serialize-a-mime-type-to-bytes" style="color:initial">serialize a mime type to bytes</span>
     <li><span class="dfn-paneled" id="term-for-xml-mime-type" style="color:initial">xml mime type</span>
    </ul>
   <li>
    <a data-link-type="biblio">[URL]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-concept-url-host" style="color:initial">host</span>
     <li><span class="dfn-paneled" id="term-for-concept-url-password" style="color:initial">password</span>
     <li><span class="dfn-paneled" id="term-for-set-the-password" style="color:initial">set the password</span>
     <li><span class="dfn-paneled" id="term-for-set-the-username" style="color:initial">set the username</span>
     <li><span class="dfn-paneled" id="term-for-concept-url-parser" style="color:initial">url parser</span>
     <li><span class="dfn-paneled" id="term-for-concept-url-serializer" style="color:initial">url serializer</span>
     <li><span class="dfn-paneled" id="term-for-concept-url-username" style="color:initial">username</span>
    </ul>
   <li>
    <a data-link-type="biblio">[WEBIDL]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-aborterror" style="color:initial">AbortError</span>
     <li><span class="dfn-paneled" id="term-for-idl-ArrayBuffer" style="color:initial">ArrayBuffer</span>
     <li><span class="dfn-paneled" id="term-for-idl-ByteString" style="color:initial">ByteString</span>
     <li><span class="dfn-paneled" id="term-for-idl-DOMException" style="color:initial">DOMException</span>
     <li><span class="dfn-paneled" id="term-for-idl-DOMString" style="color:initial">DOMString</span>
     <li><span class="dfn-paneled" id="term-for-Exposed" style="color:initial">Exposed</span>
     <li><span class="dfn-paneled" id="term-for-invalidaccesserror" style="color:initial">InvalidAccessError</span>
     <li><span class="dfn-paneled" id="term-for-invalidstateerror" style="color:initial">InvalidStateError</span>
     <li><span class="dfn-paneled" id="term-for-networkerror" style="color:initial">NetworkError</span>
     <li><span class="dfn-paneled" id="term-for-SameObject" style="color:initial">SameObject</span>
     <li><span class="dfn-paneled" id="term-for-securityerror" style="color:initial">SecurityError</span>
     <li><span class="dfn-paneled" id="term-for-syntaxerror" style="color:initial">SyntaxError</span>
     <li><span class="dfn-paneled" id="term-for-timeouterror" style="color:initial">TimeoutError</span>
     <li><span class="dfn-paneled" id="term-for-idl-USVString" style="color:initial">USVString</span>
     <li><span class="dfn-paneled" id="term-for-idl-boolean" style="color:initial">boolean</span>
     <li><span class="dfn-paneled" id="term-for-dfn-obtain-unicode" style="color:initial">obtain unicode</span>
     <li><span class="dfn-paneled" id="term-for-dfn-throw" style="color:initial">throw</span>
     <li><span class="dfn-paneled" id="term-for-idl-unsigned-long" style="color:initial">unsigned long</span>
     <li><span class="dfn-paneled" id="term-for-idl-unsigned-long-long" style="color:initial">unsigned long long</span>
     <li><span class="dfn-paneled" id="term-for-idl-unsigned-short" style="color:initial">unsigned short</span>
     <li><span class="dfn-paneled" id="term-for-dfn-value-pairs-to-iterate-over" style="color:initial">value pairs to iterate over</span>
    </ul>
  </ul>
  <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2>
  <h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3>
  <dl>
   <dt id="biblio-dom">[DOM]
   <dd>Anne van Kesteren. <a href="https://dom.spec.whatwg.org/">DOM Standard</a>. Living Standard. URL: <a href="https://dom.spec.whatwg.org/">https://dom.spec.whatwg.org/</a>
   <dt id="biblio-domps">[DOMPS]
   <dd>Travis Leithead. <a href="https://w3c.github.io/DOM-Parsing/">DOM Parsing and Serialization</a>. URL: <a href="https://w3c.github.io/DOM-Parsing/">https://w3c.github.io/DOM-Parsing/</a>
   <dt id="biblio-ecmascript">[ECMASCRIPT]
   <dd><a href="https://tc39.github.io/ecma262/">ECMAScript Language Specification</a>. URL: <a href="https://tc39.github.io/ecma262/">https://tc39.github.io/ecma262/</a>
   <dt id="biblio-encoding">[ENCODING]
   <dd>Anne van Kesteren. <a href="https://encoding.spec.whatwg.org/">Encoding Standard</a>. Living Standard. URL: <a href="https://encoding.spec.whatwg.org/">https://encoding.spec.whatwg.org/</a>
   <dt id="biblio-feature-policy">[FEATURE-POLICY]
   <dd>Ian Clelland. <a href="https://w3c.github.io/webappsec-feature-policy/">Feature Policy</a>. URL: <a href="https://w3c.github.io/webappsec-feature-policy/">https://w3c.github.io/webappsec-feature-policy/</a>
   <dt id="biblio-fetch">[FETCH]
   <dd>Anne van Kesteren. <a href="https://fetch.spec.whatwg.org/">Fetch Standard</a>. Living Standard. URL: <a href="https://fetch.spec.whatwg.org/">https://fetch.spec.whatwg.org/</a>
   <dt id="biblio-fileapi">[FILEAPI]
   <dd>Marijn Kruisselbrink; Arun Ranganathan. <a href="https://w3c.github.io/FileAPI/">File API</a>. URL: <a href="https://w3c.github.io/FileAPI/">https://w3c.github.io/FileAPI/</a>
   <dt id="biblio-html">[HTML]
   <dd>Anne van Kesteren; et al. <a href="https://html.spec.whatwg.org/multipage/">HTML Standard</a>. Living Standard. URL: <a href="https://html.spec.whatwg.org/multipage/">https://html.spec.whatwg.org/multipage/</a>
   <dt id="biblio-http">[HTTP]
   <dd>R. Fielding, Ed.; J. Reschke, Ed.. <a href="https://httpwg.org/specs/rfc7230.html">Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</a>. June 2014. Proposed Standard. URL: <a href="https://httpwg.org/specs/rfc7230.html">https://httpwg.org/specs/rfc7230.html</a>
   <dt id="biblio-infra">[INFRA]
   <dd>Anne van Kesteren; Domenic Denicola. <a href="https://infra.spec.whatwg.org/">Infra Standard</a>. Living Standard. URL: <a href="https://infra.spec.whatwg.org/">https://infra.spec.whatwg.org/</a>
   <dt id="biblio-mimesniff">[MIMESNIFF]
   <dd>Gordon P. Hemsley. <a href="https://mimesniff.spec.whatwg.org/">MIME Sniffing Standard</a>. Living Standard. URL: <a href="https://mimesniff.spec.whatwg.org/">https://mimesniff.spec.whatwg.org/</a>
   <dt id="biblio-rfc2119">[RFC2119]
   <dd>S. Bradner. <a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>. March 1997. Best Current Practice. URL: <a href="https://tools.ietf.org/html/rfc2119">https://tools.ietf.org/html/rfc2119</a>
   <dt id="biblio-url">[URL]
   <dd>Anne van Kesteren. <a href="https://url.spec.whatwg.org/">URL Standard</a>. Living Standard. URL: <a href="https://url.spec.whatwg.org/">https://url.spec.whatwg.org/</a>
   <dt id="biblio-webidl">[WEBIDL]
   <dd>Boris Zbarsky. <a href="https://heycam.github.io/webidl/">Web IDL</a>. URL: <a href="https://heycam.github.io/webidl/">https://heycam.github.io/webidl/</a>
   <dt id="biblio-xml">[XML]
   <dd>Tim Bray; et al. <a href="https://www.w3.org/TR/xml/">Extensible Markup Language (XML) 1.0 (Fifth Edition)</a>. 26 November 2008. REC. URL: <a href="https://www.w3.org/TR/xml/">https://www.w3.org/TR/xml/</a>
   <dt id="biblio-xmlns">[XMLNS]
   <dd>Tim Bray; et al. <a href="https://www.w3.org/TR/xml-names/">Namespaces in XML 1.0 (Third Edition)</a>. 8 December 2009. REC. URL: <a href="https://www.w3.org/TR/xml-names/">https://www.w3.org/TR/xml-names/</a>
  </dl>
  <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">IDL Index</span><a class="self-link" href="#idl-index"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed⑥"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <a href="#xmlhttprequesteventtarget"><code><c- g>XMLHttpRequestEventTarget</c-></code></a> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#eventtarget" id="ref-for-eventtarget①"><c- n>EventTarget</c-></a> {
  // event handlers
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑧"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onloadstart" id="ref-for-handler-xhr-onloadstart①"><c- g>onloadstart</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler①①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onprogress" id="ref-for-handler-xhr-onprogress①"><c- g>onprogress</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler②①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onabort" id="ref-for-handler-xhr-onabort①"><c- g>onabort</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler③①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onerror" id="ref-for-handler-xhr-onerror①"><c- g>onerror</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler④①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onload" id="ref-for-handler-xhr-onload①"><c- g>onload</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑤①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-ontimeout" id="ref-for-handler-xhr-ontimeout①"><c- g>ontimeout</c-></a>;
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑥①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onloadend" id="ref-for-handler-xhr-onloadend①"><c- g>onloadend</c-></a>;
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed①①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <a href="#xmlhttprequestupload"><code><c- g>XMLHttpRequestUpload</c-></code></a> : <a class="n" data-link-type="idl-name" href="#xmlhttprequesteventtarget" id="ref-for-xmlhttprequesteventtarget③"><c- n>XMLHttpRequestEventTarget</c-></a> {
};

<c- b>enum</c-> <a href="#xmlhttprequestresponsetype"><code><c- g>XMLHttpRequestResponseType</c-></code></a> {
  <a href="#dom-xmlhttprequestresponsetype"><code><c- s>""</c-></code></a>,
  <a href="#dom-xmlhttprequestresponsetype-arraybuffer"><code><c- s>"arraybuffer"</c-></code></a>,
  <a href="#dom-xmlhttprequestresponsetype-blob"><code><c- s>"blob"</c-></code></a>,
  <a href="#dom-xmlhttprequestresponsetype-document"><code><c- s>"document"</c-></code></a>,
  <a href="#dom-xmlhttprequestresponsetype-json"><code><c- s>"json"</c-></code></a>,
  <a href="#dom-xmlhttprequestresponsetype-text"><code><c- s>"text"</c-></code></a>
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed②①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <a href="#xmlhttprequest"><code><c- g>XMLHttpRequest</c-></code></a> : <a class="n" data-link-type="idl-name" href="#xmlhttprequesteventtarget" id="ref-for-xmlhttprequesteventtarget①①"><c- n>XMLHttpRequestEventTarget</c-></a> {
  <a class="idl-code" data-link-type="constructor" href="#dom-xmlhttprequest" id="ref-for-dom-xmlhttprequest②"><c- g>constructor</c-></a>();

  // event handler
  <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler⑦①"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#handler-xhr-onreadystatechange" id="ref-for-handler-xhr-onreadystatechange①"><c- g>onreadystatechange</c-></a>;

  // states
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short⑦"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-unsent" id="ref-for-dom-xmlhttprequest-unsent②"><c- g>UNSENT</c-></a> = 0;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short①①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-opened" id="ref-for-dom-xmlhttprequest-opened①"><c- g>OPENED</c-></a> = 1;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short②①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-headers_received" id="ref-for-dom-xmlhttprequest-headers_received①"><c- g>HEADERS_RECEIVED</c-></a> = 2;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short③①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-loading" id="ref-for-dom-xmlhttprequest-loading①"><c- g>LOADING</c-></a> = 3;
  <c- b>const</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short④①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="const" href="#dom-xmlhttprequest-done" id="ref-for-dom-xmlhttprequest-done①"><c- g>DONE</c-></a> = 4;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short⑤①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned short" href="#dom-xmlhttprequest-readystate" id="ref-for-dom-xmlhttprequest-readystate③"><c- g>readyState</c-></a>;

  // request
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open" id="ref-for-dom-xmlhttprequest-open③"><c- g>open</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑧"><c- b>ByteString</c-></a> <a href="#dom-xmlhttprequest-open-method-url-method"><code><c- g>method</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString②②"><c- b>USVString</c-></a> <a href="#dom-xmlhttprequest-open-method-url-url"><code><c- g>url</c-></code></a>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-open-method-url-async-username-password" id="ref-for-dom-xmlhttprequest-open-method-url-async-username-password①"><c- g>open</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString①①"><c- b>ByteString</c-></a> <a href="#dom-xmlhttprequest-open-method-url-async-username-password-method"><code><c- g>method</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①①⓪"><c- b>USVString</c-></a> <a href="#dom-xmlhttprequest-open-method-url-async-username-password-url"><code><c- g>url</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑤"><c- b>boolean</c-></a> <a href="#dom-xmlhttprequest-open-method-url-async-username-password-async"><code><c- g>async</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString②①"><c- b>USVString</c-></a>? <a href="#dom-xmlhttprequest-open-method-url-async-username-password-username"><code><c- g>username</c-></code></a> = <c- b>null</c->, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString③①"><c- b>USVString</c-></a>? <a href="#dom-xmlhttprequest-open-method-url-async-username-password-password"><code><c- g>password</c-></code></a> = <c- b>null</c->);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-setrequestheader" id="ref-for-dom-xmlhttprequest-setrequestheader③"><c- g>setRequestHeader</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString②①"><c- b>ByteString</c-></a> <a href="#dom-xmlhttprequest-setrequestheader-name-value-name"><code><c- g>name</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString③①"><c- b>ByteString</c-></a> <a href="#dom-xmlhttprequest-setrequestheader-name-value-value"><code><c- g>value</c-></code></a>);
           <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long" id="ref-for-idl-unsigned-long①"><c- b>unsigned</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-type="unsigned long" href="#dom-xmlhttprequest-timeout" id="ref-for-dom-xmlhttprequest-timeout①⓪"><c- g>timeout</c-></a>;
           <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①①"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="attribute" data-type="boolean" href="#dom-xmlhttprequest-withcredentials" id="ref-for-dom-xmlhttprequest-withcredentials⑥"><c- g>withCredentials</c-></a>;
  [<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#SameObject" id="ref-for-SameObject①"><c- g>SameObject</c-></a>] <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#xmlhttprequestupload" id="ref-for-xmlhttprequestupload①⑤"><c- n>XMLHttpRequestUpload</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="XMLHttpRequestUpload" href="#dom-xmlhttprequest-upload" id="ref-for-dom-xmlhttprequest-upload②"><c- g>upload</c-></a>;
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-send" id="ref-for-dom-xmlhttprequest-send④"><c- g>send</c-></a>(<c- b>optional</c-> (<a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#document" id="ref-for-document④"><c- n>Document</c-></a> <c- b>or</c-> <a class="n" data-link-type="idl-name" href="https://fetch.spec.whatwg.org/#bodyinit" id="ref-for-bodyinit①"><c- n>BodyInit</c-></a>)? <a href="#dom-xmlhttprequest-send-body-body"><code><c- g>body</c-></code></a> = <c- b>null</c->);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-abort" id="ref-for-dom-xmlhttprequest-abort③"><c- g>abort</c-></a>();

  // response
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString④①"><c- b>USVString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="USVString" href="#dom-xmlhttprequest-responseurl" id="ref-for-dom-xmlhttprequest-responseurl①"><c- g>responseURL</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-short" id="ref-for-idl-unsigned-short⑥①"><c- b>unsigned</c-> <c- b>short</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned short" href="#dom-xmlhttprequest-status" id="ref-for-dom-xmlhttprequest-status①"><c- g>status</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString④①"><c- b>ByteString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ByteString" href="#dom-xmlhttprequest-statustext" id="ref-for-dom-xmlhttprequest-statustext①"><c- g>statusText</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑤①"><c- b>ByteString</c-></a>? <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-getresponseheader" id="ref-for-dom-xmlhttprequest-getresponseheader①"><c- g>getResponseHeader</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑥①"><c- b>ByteString</c-></a> <a href="#dom-xmlhttprequest-getresponseheader-name-name"><code><c- g>name</c-></code></a>);
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-ByteString" id="ref-for-idl-ByteString⑦①"><c- b>ByteString</c-></a> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-getallresponseheaders" id="ref-for-dom-xmlhttprequest-getallresponseheaders①"><c- g>getAllResponseHeaders</c-></a>();
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-xmlhttprequest-overridemimetype" id="ref-for-dom-xmlhttprequest-overridemimetype③"><c- g>overrideMimeType</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString②"><c- b>DOMString</c-></a> <a href="#dom-xmlhttprequest-overridemimetype-mime-mime"><code><c- g>mime</c-></code></a>);
           <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#xmlhttprequestresponsetype" id="ref-for-xmlhttprequestresponsetype①"><c- n>XMLHttpRequestResponseType</c-></a> <a class="idl-code" data-link-type="attribute" data-type="XMLHttpRequestResponseType" href="#dom-xmlhttprequest-responsetype" id="ref-for-dom-xmlhttprequest-responsetype②⓪"><c- g>responseType</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <c- b>any</c-> <a class="idl-code" data-link-type="attribute" data-readonly data-type="any" href="#dom-xmlhttprequest-response" id="ref-for-dom-xmlhttprequest-response②"><c- g>response</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑤①"><c- b>USVString</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="USVString" href="#dom-xmlhttprequest-responsetext" id="ref-for-dom-xmlhttprequest-responsetext②"><c- g>responseText</c-></a>;
  [<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed③①"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#document" id="ref-for-document①①"><c- n>Document</c-></a>? <a class="idl-code" data-link-type="attribute" data-readonly data-type="Document?" href="#dom-xmlhttprequest-responsexml" id="ref-for-dom-xmlhttprequest-responsexml②"><c- g>responseXML</c-></a>;
};

<c- b>typedef</c-> (<a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-file" id="ref-for-dfn-file⑥"><c- n>File</c-></a> <c- b>or</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑦①"><c- b>USVString</c-></a>) <a href="#formdataentryvalue"><code><c- g>FormDataEntryValue</c-></code></a>;

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed④①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->)]
<c- b>interface</c-> <a href="#formdata"><code><c- g>FormData</c-></code></a> {
  <a class="idl-code" data-link-type="constructor" href="#dom-formdata" id="ref-for-dom-formdata①"><c- g>constructor</c-></a>(<c- b>optional</c-> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/forms.html#htmlformelement" id="ref-for-htmlformelement①"><c- n>HTMLFormElement</c-></a> <a href="#dom-formdata-formdata-form-form"><code><c- g>form</c-></code></a>);

  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-append" id="ref-for-dom-formdata-append①"><c- g>append</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑧①"><c- b>USVString</c-></a> <a href="#dom-formdata-append-name-value-name"><code><c- g>name</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString⑨①"><c- b>USVString</c-></a> <a href="#dom-formdata-append-name-value-value"><code><c- g>value</c-></code></a>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-append-blob" id="ref-for-dom-formdata-append-blob①"><c- g>append</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⓪①"><c- b>USVString</c-></a> <a href="#dom-formdata-append-name-blobvalue-filename-name"><code><c- g>name</c-></code></a>, <a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob①①"><c- n>Blob</c-></a> <a href="#dom-formdata-append-name-blobvalue-filename-blobvalue"><code><c- g>blobValue</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①①①"><c- b>USVString</c-></a> <a href="#dom-formdata-append-name-blobvalue-filename-filename"><code><c- g>filename</c-></code></a>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-delete" id="ref-for-dom-formdata-delete①"><c- g>delete</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①②①"><c- b>USVString</c-></a> <a href="#dom-formdata-delete-name-name"><code><c- g>name</c-></code></a>);
  <a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue③"><c- n>FormDataEntryValue</c-></a>? <a class="idl-code" data-link-type="method" href="#dom-formdata-get" id="ref-for-dom-formdata-get①"><c- g>get</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①③①"><c- b>USVString</c-></a> <a href="#dom-formdata-get-name-name"><code><c- g>name</c-></code></a>);
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue①①"><c- n>FormDataEntryValue</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-formdata-getall" id="ref-for-dom-formdata-getall①"><c- g>getAll</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①④①"><c- b>USVString</c-></a> <a href="#dom-formdata-getall-name-name"><code><c- g>name</c-></code></a>);
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②①"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-formdata-has" id="ref-for-dom-formdata-has①"><c- g>has</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑤①"><c- b>USVString</c-></a> <a href="#dom-formdata-has-name-name"><code><c- g>name</c-></code></a>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-set" id="ref-for-dom-formdata-set①"><c- g>set</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑥①"><c- b>USVString</c-></a> <a href="#dom-formdata-set-name-value-name"><code><c- g>name</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑦①"><c- b>USVString</c-></a> <a href="#dom-formdata-set-name-value-value"><code><c- g>value</c-></code></a>);
  <c- b>void</c-> <a class="idl-code" data-link-type="method" href="#dom-formdata-set-blob" id="ref-for-dom-formdata-set-blob①"><c- g>set</c-></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑧①"><c- b>USVString</c-></a> <a href="#dom-formdata-set-name-blobvalue-filename-name"><code><c- g>name</c-></code></a>, <a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob②①"><c- n>Blob</c-></a> <a href="#dom-formdata-set-name-blobvalue-filename-blobvalue"><code><c- g>blobValue</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString①⑨①"><c- b>USVString</c-></a> <a href="#dom-formdata-set-name-blobvalue-filename-filename"><code><c- g>filename</c-></code></a>);
  <c- b>iterable</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-USVString" id="ref-for-idl-USVString②⓪①"><c- b>USVString</c-></a>, <a class="n" data-link-type="idl-name" href="#formdataentryvalue" id="ref-for-formdataentryvalue②①"><c- n>FormDataEntryValue</c-></a>>;
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed⑤①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>DedicatedWorker</c->,<c- n>SharedWorker</c->)]
<c- b>interface</c-> <a href="#progressevent"><code><c- g>ProgressEvent</c-></code></a> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#event" id="ref-for-event①"><c- n>Event</c-></a> {
  <a href="#dom-progressevent-progressevent"><code><c- g>constructor</c-></code></a>(<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①①"><c- b>DOMString</c-></a> <a href="#dom-progressevent-progressevent-type-eventinitdict-type"><code><c- g>type</c-></code></a>, <c- b>optional</c-> <a class="n" data-link-type="idl-name" href="#progresseventinit" id="ref-for-progresseventinit①"><c- n>ProgressEventInit</c-></a> <a href="#dom-progressevent-progressevent-type-eventinitdict-eventinitdict"><code><c- g>eventInitDict</c-></code></a> = {});

  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③①"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="boolean" href="#dom-progressevent-lengthcomputable" id="ref-for-dom-progressevent-lengthcomputable②"><c- g>lengthComputable</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long④"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned long long" href="#dom-progressevent-loaded" id="ref-for-dom-progressevent-loaded②"><c- g>loaded</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long①①"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="unsigned long long" href="#dom-progressevent-total" id="ref-for-dom-progressevent-total②"><c- g>total</c-></a>;
};

<c- b>dictionary</c-> <a href="#progresseventinit"><code><c- g>ProgressEventInit</c-></code></a> : <a class="n" data-link-type="idl-name" href="https://dom.spec.whatwg.org/#dictdef-eventinit" id="ref-for-dictdef-eventinit①"><c- n>EventInit</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean④①"><c- b>boolean</c-></a> <a data-default="false" data-type="boolean " href="#dom-progresseventinit-lengthcomputable"><code><c- g>lengthComputable</c-></code></a> = <c- b>false</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long②①"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a data-default="0" data-type="unsigned long long " href="#dom-progresseventinit-loaded"><code><c- g>loaded</c-></code></a> = 0;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long③①"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a> <a data-default="0" data-type="unsigned long long " href="#dom-progresseventinit-total"><code><c- g>total</c-></code></a> = 0;
};

</pre>
  <aside class="dfn-panel" data-for="xmlhttprequesteventtarget">
   <b><a href="#xmlhttprequesteventtarget">#xmlhttprequesteventtarget</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xmlhttprequesteventtarget">4. Interface XMLHttpRequest</a> <a href="#ref-for-xmlhttprequesteventtarget①">(2)</a>
    <li><a href="#ref-for-xmlhttprequesteventtarget②">4.3. Event handlers</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="xmlhttprequestupload">
   <b><a href="#xmlhttprequestupload">#xmlhttprequestupload</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xmlhttprequestupload">4. Interface XMLHttpRequest</a> <a href="#ref-for-xmlhttprequestupload①">(2)</a>
    <li><a href="#ref-for-xmlhttprequestupload②">4.5. Request</a>
    <li><a href="#ref-for-xmlhttprequestupload③">4.5.5. The upload attribute</a> <a href="#ref-for-xmlhttprequestupload④">(2)</a> <a href="#ref-for-xmlhttprequestupload⑤">(3)</a>
    <li><a href="#ref-for-xmlhttprequestupload⑥">4.5.6. The send() method</a> <a href="#ref-for-xmlhttprequestupload⑦">(2)</a> <a href="#ref-for-xmlhttprequestupload⑧">(3)</a> <a href="#ref-for-xmlhttprequestupload⑨">(4)</a> <a href="#ref-for-xmlhttprequestupload①⓪">(5)</a> <a href="#ref-for-xmlhttprequestupload①①">(6)</a> <a href="#ref-for-xmlhttprequestupload①②">(7)</a> <a href="#ref-for-xmlhttprequestupload①③">(8)</a>
    <li><a href="#ref-for-xmlhttprequestupload①④">4.7. Events summary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="xmlhttprequestresponsetype">
   <b><a href="#xmlhttprequestresponsetype">#xmlhttprequestresponsetype</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xmlhttprequestresponsetype">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="xmlhttprequest">
   <b><a href="#xmlhttprequest">#xmlhttprequest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-xmlhttprequest">1. Introduction</a> <a href="#ref-for-xmlhttprequest①">(2)</a>
    <li><a href="#ref-for-xmlhttprequest②">1.1. Specification history</a> <a href="#ref-for-xmlhttprequest③">(2)</a> <a href="#ref-for-xmlhttprequest④">(3)</a>
    <li><a href="#ref-for-xmlhttprequest⑤">4. Interface XMLHttpRequest</a> <a href="#ref-for-xmlhttprequest⑥">(2)</a> <a href="#ref-for-xmlhttprequest⑦">(3)</a> <a href="#ref-for-xmlhttprequest⑧">(4)</a>
    <li><a href="#ref-for-xmlhttprequest⑨">4.1. Constructors</a> <a href="#ref-for-xmlhttprequest①⓪">(2)</a>
    <li><a href="#ref-for-xmlhttprequest①①">4.2. Garbage collection</a> <a href="#ref-for-xmlhttprequest①②">(2)</a> <a href="#ref-for-xmlhttprequest①③">(3)</a>
    <li><a href="#ref-for-xmlhttprequest①④">4.3. Event handlers</a>
    <li><a href="#ref-for-xmlhttprequest①⑤">4.5. Request</a>
    <li><a href="#ref-for-xmlhttprequest①⑥">4.5.1. The open() method</a> <a href="#ref-for-xmlhttprequest①⑦">(2)</a>
    <li><a href="#ref-for-xmlhttprequest①⑧">4.5.5. The upload attribute</a>
    <li><a href="#ref-for-xmlhttprequest①⑨">4.6. Response</a> <a href="#ref-for-xmlhttprequest②⓪">(2)</a>
    <li><a href="#ref-for-xmlhttprequest②①">4.6.6. Response body</a>
    <li><a href="#ref-for-xmlhttprequest②②">4.7. Events summary</a>
    <li><a href="#ref-for-xmlhttprequest②③">6.4. Example</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-xmlhttprequest-state">
   <b><a href="#concept-xmlhttprequest-state">#concept-xmlhttprequest-state</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-xmlhttprequest-state">4.2. Garbage collection</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state①">4.4. States</a> <a href="#ref-for-concept-xmlhttprequest-state②">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state③">4.5.1. The open() method</a> <a href="#ref-for-concept-xmlhttprequest-state④">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state⑤">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-concept-xmlhttprequest-state⑥">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state⑦">4.5.4. The withCredentials attribute</a> <a href="#ref-for-concept-xmlhttprequest-state⑧">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state⑨">4.5.6. The send() method</a> <a href="#ref-for-concept-xmlhttprequest-state①⓪">(2)</a> <a href="#ref-for-concept-xmlhttprequest-state①①">(3)</a> <a href="#ref-for-concept-xmlhttprequest-state①②">(4)</a> <a href="#ref-for-concept-xmlhttprequest-state①③">(5)</a> <a href="#ref-for-concept-xmlhttprequest-state①④">(6)</a> <a href="#ref-for-concept-xmlhttprequest-state①⑤">(7)</a> <a href="#ref-for-concept-xmlhttprequest-state①⑥">(8)</a> <a href="#ref-for-concept-xmlhttprequest-state①⑦">(9)</a> <a href="#ref-for-concept-xmlhttprequest-state①⑧">(10)</a> <a href="#ref-for-concept-xmlhttprequest-state①⑨">(11)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state②⓪">4.5.7. The abort() method</a> <a href="#ref-for-concept-xmlhttprequest-state②①">(2)</a> <a href="#ref-for-concept-xmlhttprequest-state②②">(3)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state②③">4.6.7. The overrideMimeType() method</a> <a href="#ref-for-concept-xmlhttprequest-state②④">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state②⑤">4.6.8. The responseType attribute</a> <a href="#ref-for-concept-xmlhttprequest-state②⑥">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state②⑦">4.6.9. The response attribute</a> <a href="#ref-for-concept-xmlhttprequest-state②⑧">(2)</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state②⑨">4.6.10. The responseText attribute</a>
    <li><a href="#ref-for-concept-xmlhttprequest-state③⓪">4.6.11. The responseXML attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="send-flag">
   <b><a href="#send-flag">#send-flag</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-send-flag">4.2. Garbage collection</a>
    <li><a href="#ref-for-send-flag①">4.5.1. The open() method</a>
    <li><a href="#ref-for-send-flag②">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-send-flag③">(2)</a>
    <li><a href="#ref-for-send-flag④">4.5.4. The withCredentials attribute</a> <a href="#ref-for-send-flag⑤">(2)</a>
    <li><a href="#ref-for-send-flag⑥">4.5.6. The send() method</a> <a href="#ref-for-send-flag⑦">(2)</a> <a href="#ref-for-send-flag⑧">(3)</a> <a href="#ref-for-send-flag⑨">(4)</a> <a href="#ref-for-send-flag①⓪">(5)</a> <a href="#ref-for-send-flag①①">(6)</a> <a href="#ref-for-send-flag①②">(7)</a> <a href="#ref-for-send-flag①③">(8)</a>
    <li><a href="#ref-for-send-flag①④">4.5.7. The abort() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest">
   <b><a href="#dom-xmlhttprequest">#dom-xmlhttprequest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest①">4.1. Constructors</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onloadstart">
   <b><a href="#handler-xhr-onloadstart">#handler-xhr-onloadstart</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onloadstart">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onprogress">
   <b><a href="#handler-xhr-onprogress">#handler-xhr-onprogress</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onprogress">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onabort">
   <b><a href="#handler-xhr-onabort">#handler-xhr-onabort</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onabort">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onerror">
   <b><a href="#handler-xhr-onerror">#handler-xhr-onerror</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onerror">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onload">
   <b><a href="#handler-xhr-onload">#handler-xhr-onload</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onload">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-ontimeout">
   <b><a href="#handler-xhr-ontimeout">#handler-xhr-ontimeout</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-ontimeout">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onloadend">
   <b><a href="#handler-xhr-onloadend">#handler-xhr-onloadend</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onloadend">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handler-xhr-onreadystatechange">
   <b><a href="#handler-xhr-onreadystatechange">#handler-xhr-onreadystatechange</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handler-xhr-onreadystatechange">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-readystate">
   <b><a href="#dom-xmlhttprequest-readystate">#dom-xmlhttprequest-readystate</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-readystate">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-readystate①">4.4. States</a>
    <li><a href="#ref-for-dom-xmlhttprequest-readystate②">4.7. Events summary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-unsent">
   <b><a href="#dom-xmlhttprequest-unsent">#dom-xmlhttprequest-unsent</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-unsent">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-unsent①">4.7. Events summary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-opened">
   <b><a href="#dom-xmlhttprequest-opened">#dom-xmlhttprequest-opened</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-opened">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-headers_received">
   <b><a href="#dom-xmlhttprequest-headers_received">#dom-xmlhttprequest-headers_received</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-headers_received">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-loading">
   <b><a href="#dom-xmlhttprequest-loading">#dom-xmlhttprequest-loading</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-loading">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-done">
   <b><a href="#dom-xmlhttprequest-done">#dom-xmlhttprequest-done</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-done">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="request-method">
   <b><a href="#request-method">#request-method</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-request-method">4.5.1. The open() method</a> <a href="#ref-for-request-method①">(2)</a>
    <li><a href="#ref-for-request-method②">4.5.6. The send() method</a> <a href="#ref-for-request-method③">(2)</a> <a href="#ref-for-request-method④">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="request-url">
   <b><a href="#request-url">#request-url</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-request-url">4.5.1. The open() method</a> <a href="#ref-for-request-url①">(2)</a>
    <li><a href="#ref-for-request-url②">4.5.6. The send() method</a> <a href="#ref-for-request-url③">(2)</a> <a href="#ref-for-request-url④">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="author-request-headers">
   <b><a href="#author-request-headers">#author-request-headers</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-author-request-headers">4.5. Request</a>
    <li><a href="#ref-for-author-request-headers①">4.5.1. The open() method</a>
    <li><a href="#ref-for-author-request-headers②">4.5.2. The setRequestHeader() method</a> <a href="#ref-for-author-request-headers③">(2)</a>
    <li><a href="#ref-for-author-request-headers④">4.5.6. The send() method</a> <a href="#ref-for-author-request-headers⑤">(2)</a> <a href="#ref-for-author-request-headers⑥">(3)</a> <a href="#ref-for-author-request-headers⑦">(4)</a> <a href="#ref-for-author-request-headers⑧">(5)</a> <a href="#ref-for-author-request-headers⑨">(6)</a> <a href="#ref-for-author-request-headers①⓪">(7)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="request-body">
   <b><a href="#request-body">#request-body</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-request-body">4.5. Request</a>
    <li><a href="#ref-for-request-body①">4.5.6. The send() method</a> <a href="#ref-for-request-body②">(2)</a> <a href="#ref-for-request-body③">(3)</a> <a href="#ref-for-request-body④">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="synchronous-flag">
   <b><a href="#synchronous-flag">#synchronous-flag</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-synchronous-flag">4.5. Request</a>
    <li><a href="#ref-for-synchronous-flag①">4.5.1. The open() method</a> <a href="#ref-for-synchronous-flag②">(2)</a> <a href="#ref-for-synchronous-flag③">(3)</a>
    <li><a href="#ref-for-synchronous-flag④">4.5.3. The timeout attribute</a> <a href="#ref-for-synchronous-flag⑤">(2)</a> <a href="#ref-for-synchronous-flag⑥">(3)</a>
    <li><a href="#ref-for-synchronous-flag⑧">4.5.6. The send() method</a> <a href="#ref-for-synchronous-flag⑨">(2)</a> <a href="#ref-for-synchronous-flag①⓪">(3)</a> <a href="#ref-for-synchronous-flag①①">(4)</a> <a href="#ref-for-synchronous-flag①②">(5)</a> <a href="#ref-for-synchronous-flag①③">(6)</a> <a href="#ref-for-synchronous-flag①④">(7)</a> <a href="#ref-for-synchronous-flag①⑤">(8)</a>
    <li><a href="#ref-for-synchronous-flag①⑥">4.6.8. The responseType attribute</a> <a href="#ref-for-synchronous-flag①⑦">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="upload-complete-flag">
   <b><a href="#upload-complete-flag">#upload-complete-flag</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-upload-complete-flag">4.5. Request</a>
    <li><a href="#ref-for-upload-complete-flag①">4.5.6. The send() method</a> <a href="#ref-for-upload-complete-flag②">(2)</a> <a href="#ref-for-upload-complete-flag③">(3)</a> <a href="#ref-for-upload-complete-flag④">(4)</a> <a href="#ref-for-upload-complete-flag⑤">(5)</a> <a href="#ref-for-upload-complete-flag⑥">(6)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="upload-listener-flag">
   <b><a href="#upload-listener-flag">#upload-listener-flag</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-upload-listener-flag">4.5. Request</a> <a href="#ref-for-upload-listener-flag①">(2)</a>
    <li><a href="#ref-for-upload-listener-flag②">4.5.1. The open() method</a>
    <li><a href="#ref-for-upload-listener-flag③">4.5.6. The send() method</a> <a href="#ref-for-upload-listener-flag④">(2)</a> <a href="#ref-for-upload-listener-flag⑤">(3)</a> <a href="#ref-for-upload-listener-flag⑥">(4)</a> <a href="#ref-for-upload-listener-flag⑦">(5)</a> <a href="#ref-for-upload-listener-flag⑧">(6)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="timed-out-flag">
   <b><a href="#timed-out-flag">#timed-out-flag</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-timed-out-flag">4.5. Request</a>
    <li><a href="#ref-for-timed-out-flag①">4.5.6. The send() method</a> <a href="#ref-for-timed-out-flag②">(2)</a> <a href="#ref-for-timed-out-flag③">(3)</a> <a href="#ref-for-timed-out-flag④">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-open">
   <b><a href="#dom-xmlhttprequest-open">#dom-xmlhttprequest-open</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-open">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-open①">4.4. States</a>
    <li><a href="#ref-for-dom-xmlhttprequest-open②">4.5.1. The open() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-open-method-url-async-username-password">
   <b><a href="#dom-xmlhttprequest-open-method-url-async-username-password">#dom-xmlhttprequest-open-method-url-async-username-password</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-open-method-url-async-username-password">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-setrequestheader">
   <b><a href="#dom-xmlhttprequest-setrequestheader">#dom-xmlhttprequest-setrequestheader</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-setrequestheader">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-setrequestheader①">4.4. States</a>
    <li><a href="#ref-for-dom-xmlhttprequest-setrequestheader②">4.5.2. The setRequestHeader() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-timeout">
   <b><a href="#dom-xmlhttprequest-timeout">#dom-xmlhttprequest-timeout</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-timeout">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-timeout①">4.5.1. The open() method</a> <a href="#ref-for-dom-xmlhttprequest-timeout②">(2)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-timeout③">4.5.3. The timeout attribute</a> <a href="#ref-for-dom-xmlhttprequest-timeout④">(2)</a> <a href="#ref-for-dom-xmlhttprequest-timeout⑤">(3)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-timeout⑥">4.5.6. The send() method</a> <a href="#ref-for-dom-xmlhttprequest-timeout⑦">(2)</a> <a href="#ref-for-dom-xmlhttprequest-timeout⑧">(3)</a> <a href="#ref-for-dom-xmlhttprequest-timeout⑨">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-withcredentials">
   <b><a href="#dom-xmlhttprequest-withcredentials">#dom-xmlhttprequest-withcredentials</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-withcredentials">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-withcredentials①">4.5.4. The withCredentials attribute</a> <a href="#ref-for-dom-xmlhttprequest-withcredentials②">(2)</a> <a href="#ref-for-dom-xmlhttprequest-withcredentials③">(3)</a> <a href="#ref-for-dom-xmlhttprequest-withcredentials④">(4)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-withcredentials⑤">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-upload">
   <b><a href="#dom-xmlhttprequest-upload">#dom-xmlhttprequest-upload</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-upload">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-upload①">4.5.5. The upload attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-send">
   <b><a href="#dom-xmlhttprequest-send">#dom-xmlhttprequest-send</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-send">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-send①">4.4. States</a>
    <li><a href="#ref-for-dom-xmlhttprequest-send②">4.5.3. The timeout attribute</a>
    <li><a href="#ref-for-dom-xmlhttprequest-send③">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handle-response-end-of-body">
   <b><a href="#handle-response-end-of-body">#handle-response-end-of-body</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handle-response-end-of-body">4.5.6. The send() method</a> <a href="#ref-for-handle-response-end-of-body①">(2)</a> <a href="#ref-for-handle-response-end-of-body②">(3)</a> <a href="#ref-for-handle-response-end-of-body③">(4)</a> <a href="#ref-for-handle-response-end-of-body④">(5)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="handle-errors">
   <b><a href="#handle-errors">#handle-errors</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-handle-errors">4.5.6. The send() method</a> <a href="#ref-for-handle-errors①">(2)</a> <a href="#ref-for-handle-errors②">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="request-error-steps">
   <b><a href="#request-error-steps">#request-error-steps</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-request-error-steps">4.5.6. The send() method</a> <a href="#ref-for-request-error-steps①">(2)</a> <a href="#ref-for-request-error-steps②">(3)</a>
    <li><a href="#ref-for-request-error-steps③">4.5.7. The abort() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-abort">
   <b><a href="#dom-xmlhttprequest-abort">#dom-xmlhttprequest-abort</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-abort">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-abort①">4.5.7. The abort() method</a>
    <li><a href="#ref-for-dom-xmlhttprequest-abort②">4.7. Events summary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="response">
   <b><a href="#response">#response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-response">4.4. States</a> <a href="#ref-for-response①">(2)</a>
    <li><a href="#ref-for-response②">4.5.1. The open() method</a>
    <li><a href="#ref-for-response③">4.5.6. The send() method</a> <a href="#ref-for-response④">(2)</a> <a href="#ref-for-response⑤">(3)</a> <a href="#ref-for-response⑥">(4)</a> <a href="#ref-for-response⑦">(5)</a> <a href="#ref-for-response⑧">(6)</a> <a href="#ref-for-response⑨">(7)</a>
    <li><a href="#ref-for-response①⓪">4.5.7. The abort() method</a>
    <li><a href="#ref-for-response①①">4.6.1. The responseURL attribute</a>
    <li><a href="#ref-for-response①②">4.6.2. The status attribute</a>
    <li><a href="#ref-for-response①③">4.6.3. The statusText attribute</a>
    <li><a href="#ref-for-response①④">4.6.4. The getResponseHeader() method</a> <a href="#ref-for-response①⑤">(2)</a>
    <li><a href="#ref-for-response①⑥">4.6.5. The getAllResponseHeaders() method</a> <a href="#ref-for-response①⑦">(2)</a>
    <li><a href="#ref-for-response①⑧">4.6.6. Response body</a> <a href="#ref-for-response①⑨">(2)</a> <a href="#ref-for-response②⓪">(3)</a> <a href="#ref-for-response②①">(4)</a> <a href="#ref-for-response②②">(5)</a>
    <li><a href="#ref-for-response②③">4.6.7. The overrideMimeType() method</a>
    <li><a href="#ref-for-response②④">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="received-bytes">
   <b><a href="#received-bytes">#received-bytes</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-received-bytes">4.5.1. The open() method</a>
    <li><a href="#ref-for-received-bytes①">4.5.6. The send() method</a> <a href="#ref-for-received-bytes②">(2)</a>
    <li><a href="#ref-for-received-bytes③">4.6.6. Response body</a> <a href="#ref-for-received-bytes④">(2)</a> <a href="#ref-for-received-bytes⑤">(3)</a> <a href="#ref-for-received-bytes⑥">(4)</a> <a href="#ref-for-received-bytes⑦">(5)</a> <a href="#ref-for-received-bytes⑧">(6)</a> <a href="#ref-for-received-bytes⑨">(7)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-responseurl">
   <b><a href="#dom-xmlhttprequest-responseurl">#dom-xmlhttprequest-responseurl</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-responseurl">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-status">
   <b><a href="#dom-xmlhttprequest-status">#dom-xmlhttprequest-status</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-status">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-statustext">
   <b><a href="#dom-xmlhttprequest-statustext">#dom-xmlhttprequest-statustext</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-statustext">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-getresponseheader">
   <b><a href="#dom-xmlhttprequest-getresponseheader">#dom-xmlhttprequest-getresponseheader</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-getresponseheader">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="legacy-uppercased-byte-less-than">
   <b><a href="#legacy-uppercased-byte-less-than">#legacy-uppercased-byte-less-than</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-legacy-uppercased-byte-less-than">4.6.5. The getAllResponseHeaders() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-getallresponseheaders">
   <b><a href="#dom-xmlhttprequest-getallresponseheaders">#dom-xmlhttprequest-getallresponseheaders</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-getallresponseheaders">4. Interface XMLHttpRequest</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="response-mime-type">
   <b><a href="#response-mime-type">#response-mime-type</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-response-mime-type">4.6.6. Response body</a> <a href="#ref-for-response-mime-type①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="override-mime-type">
   <b><a href="#override-mime-type">#override-mime-type</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-override-mime-type">4.5.1. The open() method</a>
    <li><a href="#ref-for-override-mime-type①">4.6.6. Response body</a> <a href="#ref-for-override-mime-type②">(2)</a>
    <li><a href="#ref-for-override-mime-type③">4.6.7. The overrideMimeType() method</a> <a href="#ref-for-override-mime-type④">(2)</a> <a href="#ref-for-override-mime-type⑤">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="final-mime-type">
   <b><a href="#final-mime-type">#final-mime-type</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-final-mime-type">4.6.6. Response body</a> <a href="#ref-for-final-mime-type①">(2)</a> <a href="#ref-for-final-mime-type②">(3)</a> <a href="#ref-for-final-mime-type③">(4)</a> <a href="#ref-for-final-mime-type④">(5)</a> <a href="#ref-for-final-mime-type⑤">(6)</a> <a href="#ref-for-final-mime-type⑥">(7)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="final-charset">
   <b><a href="#final-charset">#final-charset</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-final-charset">4.6.6. Response body</a> <a href="#ref-for-final-charset①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="response-object">
   <b><a href="#response-object">#response-object</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-response-object">4.5.1. The open() method</a>
    <li><a href="#ref-for-response-object①">4.6.6. Response body</a> <a href="#ref-for-response-object②">(2)</a> <a href="#ref-for-response-object③">(3)</a> <a href="#ref-for-response-object④">(4)</a> <a href="#ref-for-response-object⑤">(5)</a> <a href="#ref-for-response-object⑥">(6)</a> <a href="#ref-for-response-object⑦">(7)</a>
    <li><a href="#ref-for-response-object⑧">4.6.9. The response attribute</a> <a href="#ref-for-response-object⑨">(2)</a>
    <li><a href="#ref-for-response-object①⓪">4.6.11. The responseXML attribute</a> <a href="#ref-for-response-object①①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="arraybuffer-response">
   <b><a href="#arraybuffer-response">#arraybuffer-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-arraybuffer-response">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="blob-response">
   <b><a href="#blob-response">#blob-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-blob-response">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="document-response">
   <b><a href="#document-response">#document-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-document-response">4.6.9. The response attribute</a>
    <li><a href="#ref-for-document-response①">4.6.11. The responseXML attribute</a> <a href="#ref-for-document-response②">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="json-response">
   <b><a href="#json-response">#json-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-json-response">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="text-response">
   <b><a href="#text-response">#text-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-text-response">4.6.9. The response attribute</a>
    <li><a href="#ref-for-text-response①">4.6.10. The responseText attribute</a> <a href="#ref-for-text-response②">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-overridemimetype">
   <b><a href="#dom-xmlhttprequest-overridemimetype">#dom-xmlhttprequest-overridemimetype</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-overridemimetype">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-overridemimetype①">4.6.6. Response body</a>
    <li><a href="#ref-for-dom-xmlhttprequest-overridemimetype②">4.6.7. The overrideMimeType() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-responsetype">
   <b><a href="#dom-xmlhttprequest-responsetype">#dom-xmlhttprequest-responsetype</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype①">4.5.1. The open() method</a> <a href="#ref-for-dom-xmlhttprequest-responsetype②">(2)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype③">4.6.6. Response body</a> <a href="#ref-for-dom-xmlhttprequest-responsetype④">(2)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype⑤">(3)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype⑥">(4)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype⑦">(5)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype⑧">4.6.8. The responseType attribute</a> <a href="#ref-for-dom-xmlhttprequest-responsetype⑨">(2)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①⓪">(3)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype①①">4.6.9. The response attribute</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①②">(2)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①③">(3)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①④">(4)</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①⑤">(5)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype①⑥">4.6.10. The responseText attribute</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①⑦">(2)</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetype①⑧">4.6.11. The responseXML attribute</a> <a href="#ref-for-dom-xmlhttprequest-responsetype①⑨">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-response">
   <b><a href="#dom-xmlhttprequest-response">#dom-xmlhttprequest-response</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-response">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-response①">4.6.9. The response attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-responsetext">
   <b><a href="#dom-xmlhttprequest-responsetext">#dom-xmlhttprequest-responsetext</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetext">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsetext①">4.6.10. The responseText attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-xmlhttprequest-responsexml">
   <b><a href="#dom-xmlhttprequest-responsexml">#dom-xmlhttprequest-responsexml</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-xmlhttprequest-responsexml">4. Interface XMLHttpRequest</a>
    <li><a href="#ref-for-dom-xmlhttprequest-responsexml①">4.6.11. The responseXML attribute</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-readystatechange">
   <b><a href="#event-xhr-readystatechange">#event-xhr-readystatechange</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-readystatechange">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-readystatechange①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-readystatechange②">4.5.1. The open() method</a>
    <li><a href="#ref-for-event-xhr-readystatechange③">4.5.6. The send() method</a> <a href="#ref-for-event-xhr-readystatechange④">(2)</a> <a href="#ref-for-event-xhr-readystatechange⑤">(3)</a> <a href="#ref-for-event-xhr-readystatechange⑥">(4)</a> <a href="#ref-for-event-xhr-readystatechange⑦">(5)</a>
    <li><a href="#ref-for-event-xhr-readystatechange⑧">4.5.7. The abort() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-loadstart">
   <b><a href="#event-xhr-loadstart">#event-xhr-loadstart</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-loadstart">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-loadstart①">4.5.6. The send() method</a> <a href="#ref-for-event-xhr-loadstart②">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-progress">
   <b><a href="#event-xhr-progress">#event-xhr-progress</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-progress">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-progress①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-progress②">4.5.6. The send() method</a> <a href="#ref-for-event-xhr-progress③">(2)</a> <a href="#ref-for-event-xhr-progress④">(3)</a> <a href="#ref-for-event-xhr-progress⑤">(4)</a>
    <li><a href="#ref-for-event-xhr-progress⑥">6.2. Suggested names for events using the ProgressEvent interface</a> <a href="#ref-for-event-xhr-progress⑦">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-abort">
   <b><a href="#event-xhr-abort">#event-xhr-abort</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-abort">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-abort①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-abort②">4.5.6. The send() method</a>
    <li><a href="#ref-for-event-xhr-abort③">4.5.7. The abort() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-error">
   <b><a href="#event-xhr-error">#event-xhr-error</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-error">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-error①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-error②">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-load">
   <b><a href="#event-xhr-load">#event-xhr-load</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-load">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-load①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-load②">4.5.6. The send() method</a> <a href="#ref-for-event-xhr-load③">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-timeout">
   <b><a href="#event-xhr-timeout">#event-xhr-timeout</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-timeout">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-timeout①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-timeout②">4.5.3. The timeout attribute</a>
    <li><a href="#ref-for-event-xhr-timeout③">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="event-xhr-loadend">
   <b><a href="#event-xhr-loadend">#event-xhr-loadend</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-event-xhr-loadend">4.2. Garbage collection</a>
    <li><a href="#ref-for-event-xhr-loadend①">4.3. Event handlers</a>
    <li><a href="#ref-for-event-xhr-loadend②">4.5.6. The send() method</a> <a href="#ref-for-event-xhr-loadend③">(2)</a> <a href="#ref-for-event-xhr-loadend④">(3)</a> <a href="#ref-for-event-xhr-loadend⑤">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="sync-xhr">
   <b><a href="#sync-xhr">#sync-xhr</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-sync-xhr">4.5.6. The send() method</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="formdataentryvalue">
   <b><a href="#formdataentryvalue">#formdataentryvalue</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-formdataentryvalue">5. Interface FormData</a> <a href="#ref-for-formdataentryvalue①">(2)</a> <a href="#ref-for-formdataentryvalue②">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="formdata">
   <b><a href="#formdata">#formdata</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-formdata">5. Interface FormData</a> <a href="#ref-for-formdata①">(2)</a> <a href="#ref-for-formdata②">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-formdata-entry-list">
   <b><a href="#concept-formdata-entry-list">#concept-formdata-entry-list</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-formdata-entry-list">5. Interface FormData</a> <a href="#ref-for-concept-formdata-entry-list①">(2)</a> <a href="#ref-for-concept-formdata-entry-list②">(3)</a> <a href="#ref-for-concept-formdata-entry-list③">(4)</a> <a href="#ref-for-concept-formdata-entry-list④">(5)</a> <a href="#ref-for-concept-formdata-entry-list⑤">(6)</a> <a href="#ref-for-concept-formdata-entry-list⑥">(7)</a> <a href="#ref-for-concept-formdata-entry-list⑦">(8)</a> <a href="#ref-for-concept-formdata-entry-list⑧">(9)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-formdata-entry">
   <b><a href="#concept-formdata-entry">#concept-formdata-entry</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-formdata-entry">5. Interface FormData</a> <a href="#ref-for-concept-formdata-entry①">(2)</a> <a href="#ref-for-concept-formdata-entry②">(3)</a> <a href="#ref-for-concept-formdata-entry③">(4)</a> <a href="#ref-for-concept-formdata-entry④">(5)</a> <a href="#ref-for-concept-formdata-entry⑤">(6)</a> <a href="#ref-for-concept-formdata-entry⑥">(7)</a> <a href="#ref-for-concept-formdata-entry⑦">(8)</a> <a href="#ref-for-concept-formdata-entry⑧">(9)</a> <a href="#ref-for-concept-formdata-entry⑨">(10)</a> <a href="#ref-for-concept-formdata-entry①⓪">(11)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-formdata-entry-name">
   <b><a href="#concept-formdata-entry-name">#concept-formdata-entry-name</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-formdata-entry-name">5. Interface FormData</a> <a href="#ref-for-concept-formdata-entry-name①">(2)</a> <a href="#ref-for-concept-formdata-entry-name②">(3)</a> <a href="#ref-for-concept-formdata-entry-name③">(4)</a> <a href="#ref-for-concept-formdata-entry-name④">(5)</a> <a href="#ref-for-concept-formdata-entry-name⑤">(6)</a> <a href="#ref-for-concept-formdata-entry-name⑥">(7)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-formdata-entry-value">
   <b><a href="#concept-formdata-entry-value">#concept-formdata-entry-value</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-formdata-entry-value">5. Interface FormData</a> <a href="#ref-for-concept-formdata-entry-value①">(2)</a> <a href="#ref-for-concept-formdata-entry-value②">(3)</a> <a href="#ref-for-concept-formdata-entry-value③">(4)</a> <a href="#ref-for-concept-formdata-entry-value④">(5)</a> <a href="#ref-for-concept-formdata-entry-value⑤">(6)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="create-an-entry">
   <b><a href="#create-an-entry">#create-an-entry</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-create-an-entry">5. Interface FormData</a> <a href="#ref-for-create-an-entry①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata">
   <b><a href="#dom-formdata">#dom-formdata</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-append">
   <b><a href="#dom-formdata-append">#dom-formdata-append</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-append">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-append-blob">
   <b><a href="#dom-formdata-append-blob">#dom-formdata-append-blob</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-append-blob">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-delete">
   <b><a href="#dom-formdata-delete">#dom-formdata-delete</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-delete">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-get">
   <b><a href="#dom-formdata-get">#dom-formdata-get</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-get">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-getall">
   <b><a href="#dom-formdata-getall">#dom-formdata-getall</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-getall">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-has">
   <b><a href="#dom-formdata-has">#dom-formdata-has</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-has">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-set">
   <b><a href="#dom-formdata-set">#dom-formdata-set</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-set">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-formdata-set-blob">
   <b><a href="#dom-formdata-set-blob">#dom-formdata-set-blob</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-formdata-set-blob">5. Interface FormData</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="progressevent">
   <b><a href="#progressevent">#progressevent</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-progressevent">4.7. Events summary</a> <a href="#ref-for-progressevent①">(2)</a> <a href="#ref-for-progressevent②">(3)</a> <a href="#ref-for-progressevent③">(4)</a> <a href="#ref-for-progressevent④">(5)</a> <a href="#ref-for-progressevent⑤">(6)</a> <a href="#ref-for-progressevent⑥">(7)</a>
    <li><a href="#ref-for-progressevent⑦">6. Interface ProgressEvent</a> <a href="#ref-for-progressevent⑧">(2)</a>
    <li><a href="#ref-for-progressevent⑨">6.1. Firing events using the ProgressEvent interface</a> <a href="#ref-for-progressevent①⓪">(2)</a>
    <li><a href="#ref-for-progressevent①①">6.2. Suggested names for events using the ProgressEvent interface</a> <a href="#ref-for-progressevent①②">(2)</a> <a href="#ref-for-progressevent①③">(3)</a>
    <li><a href="#ref-for-progressevent①④">6.3. Security considerations</a>
    <li><a href="#ref-for-progressevent①⑤">Acknowledgments</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="progresseventinit">
   <b><a href="#progresseventinit">#progresseventinit</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-progresseventinit">6. Interface ProgressEvent</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-progressevent-lengthcomputable">
   <b><a href="#dom-progressevent-lengthcomputable">#dom-progressevent-lengthcomputable</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-progressevent-lengthcomputable">6. Interface ProgressEvent</a>
    <li><a href="#ref-for-dom-progressevent-lengthcomputable①">6.1. Firing events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-progressevent-loaded">
   <b><a href="#dom-progressevent-loaded">#dom-progressevent-loaded</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-progressevent-loaded">6. Interface ProgressEvent</a>
    <li><a href="#ref-for-dom-progressevent-loaded①">6.1. Firing events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-progressevent-total">
   <b><a href="#dom-progressevent-total">#dom-progressevent-total</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-progressevent-total">6. Interface ProgressEvent</a>
    <li><a href="#ref-for-dom-progressevent-total①">6.1. Firing events using the ProgressEvent interface</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="concept-event-fire-progress">
   <b><a href="#concept-event-fire-progress">#concept-event-fire-progress</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-concept-event-fire-progress">4.5.6. The send() method</a> <a href="#ref-for-concept-event-fire-progress①">(2)</a> <a href="#ref-for-concept-event-fire-progress②">(3)</a> <a href="#ref-for-concept-event-fire-progress③">(4)</a> <a href="#ref-for-concept-event-fire-progress④">(5)</a> <a href="#ref-for-concept-event-fire-progress⑤">(6)</a> <a href="#ref-for-concept-event-fire-progress⑥">(7)</a> <a href="#ref-for-concept-event-fire-progress⑦">(8)</a> <a href="#ref-for-concept-event-fire-progress⑧">(9)</a> <a href="#ref-for-concept-event-fire-progress⑨">(10)</a> <a href="#ref-for-concept-event-fire-progress①⓪">(11)</a> <a href="#ref-for-concept-event-fire-progress①①">(12)</a> <a href="#ref-for-concept-event-fire-progress①②">(13)</a> <a href="#ref-for-concept-event-fire-progress①③">(14)</a>
   </ul>
  </aside>
<script>/* script-dfn-panel */

document.body.addEventListener("click", function(e) {
    var queryAll = function(sel) { return [].slice.call(document.querySelectorAll(sel)); }
    // Find the dfn element or panel, if any, that was clicked on.
    var el = e.target;
    var target;
    var hitALink = false;
    while(el.parentElement) {
        if(el.tagName == "A") {
            // Clicking on a link in a <dfn> shouldn't summon the panel
            hitALink = true;
        }
        if(el.classList.contains("dfn-paneled")) {
            target = "dfn";
            break;
        }
        if(el.classList.contains("dfn-panel")) {
            target = "dfn-panel";
            break;
        }
        el = el.parentElement;
    }
    if(target != "dfn-panel") {
        // Turn off any currently "on" or "activated" panels.
        queryAll(".dfn-panel.on, .dfn-panel.activated").forEach(function(el){
            el.classList.remove("on");
            el.classList.remove("activated");
        });
    }
    if(target == "dfn" && !hitALink) {
        // open the panel
        var dfnPanel = document.querySelector(".dfn-panel[data-for='" + el.id + "']");
        if(dfnPanel) {
            dfnPanel.classList.add("on");
            var rect = el.getBoundingClientRect();
            dfnPanel.style.left = window.scrollX + rect.right + 5 + "px";
            dfnPanel.style.top = window.scrollY + rect.top + "px";
            var panelRect = dfnPanel.getBoundingClientRect();
            var panelWidth = panelRect.right - panelRect.left;
            if(panelRect.right > document.body.scrollWidth && (rect.left - (panelWidth + 5)) > 0) {
                // Reposition, because the panel is overflowing
                dfnPanel.style.left = window.scrollX + rect.left - (panelWidth + 5) + "px";
            }
        } else {
            console.log("Couldn't find .dfn-panel[data-for='" + el.id + "']");
        }
    } else if(target == "dfn-panel") {
        // Switch it to "activated" state, which pins it.
        el.classList.add("activated");
        el.style.left = null;
        el.style.top = null;
    }

});
</script>